PDC Upgrade

pull/6/head
= 9 months ago
parent 2711fae9c7
commit 5aac4d2d72
  1. 24
      src/main/java/xyz/soukup/ecoCraftCore/commands/MoneyCommand.java
  2. 3
      src/main/java/xyz/soukup/ecoCraftCore/commands/RulerCommand.java
  3. 63
      src/main/java/xyz/soukup/ecoCraftCore/events/ShopLogic.java
  4. 4
      src/main/java/xyz/soukup/ecoCraftCore/events/VirtualChestLogic.java
  5. 39
      src/main/java/xyz/soukup/ecoCraftCore/utilities/Messages.java
  6. 25
      src/main/resources/messages.yml

@ -51,7 +51,9 @@ public class MoneyCommand {
}
private static int getBalance(CommandContext<CommandSourceStack> context){
if (!(context.getSource().getSender() instanceof Player player)){
CommandSender commandSender = context.getSource().getSender();
if (!(commandSender instanceof Player player)){
Messages.send(commandSender, "generic.error.not-player");
return 0;
}
Account account = Account.getOrCreate(player);
@ -77,8 +79,9 @@ public class MoneyCommand {
Transaction transaction = new Transaction(amount,"player", sender.getName(), "player", receiver.getName(), "player");
transaction.process();
Messages.send(sender, "money.send.player", PHHM.get(transaction));
Messages.send(receiver, "money.receiver.player", PHHM.get(transaction));
Messages.send(receiver, "money.receive.player", PHHM.get(transaction));
return 1;
}
@ -94,6 +97,8 @@ public class MoneyCommand {
Transaction transaction = new Transaction(amount,"admin", commandSender.getName(), "player", receiver.getName(), "admin");
transaction.process();
Messages.send(commandSender, "money.give.player", PHHM.get(transaction));
return 1;
}
@ -103,6 +108,9 @@ public class MoneyCommand {
Transaction transaction = new Transaction(amount,"admin", player.getName(), "player", player.getName(), "admin");
transaction.process();
Messages.send(player, "money.give.self", PHHM.get(transaction));
return 1;
}
@ -114,6 +122,9 @@ public class MoneyCommand {
Transaction transaction = new Transaction(amount,"admin", commandSender.getName(), type, owner, "admin");
transaction.process();
Messages.send(commandSender, "money.give.other", PHHM.get(transaction));
return 1;
}
private static int removeMoneyPlayer(CommandContext<CommandSourceStack> context) throws CommandSyntaxException {
@ -126,6 +137,9 @@ public class MoneyCommand {
Transaction transaction = new Transaction(amount, "player", sender.getName(),"admin", commandSender.getName(), "admin");
transaction.process();
Messages.send(commandSender, "money.remove.player", PHHM.get(transaction));
return 1;
}
private static int removeMoneySelf(CommandContext<CommandSourceStack> context){
@ -134,6 +148,9 @@ public class MoneyCommand {
Transaction transaction = new Transaction(amount,"player", player.getName(),"admin", player.getName(), "admin");
transaction.process();
Messages.send(player, "money.remove.self", PHHM.get(transaction));
return 1;
}
private static int removeMoneyOther(CommandContext<CommandSourceStack> context){
@ -144,6 +161,9 @@ public class MoneyCommand {
Transaction transaction = new Transaction(amount, type, owner,"admin", commandSender.getName(), "admin");
transaction.process();
Messages.send(commandSender, "money.remove.other", PHHM.get(transaction));
return 1;
}
}

@ -8,6 +8,7 @@ import org.bukkit.Material;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import xyz.soukup.ecoCraftCore.utilities.Messages;
import xyz.soukup.ecoCraftCore.utilities.PDC;
public class RulerCommand {
@ -21,7 +22,7 @@ public class RulerCommand {
CommandSender commandSender = context.getSource().getSender();
if (!(commandSender instanceof Player)){
commandSender.sendPlainMessage("Musíš být hráč");
Messages.send(commandSender, "generic.error.not-player");
return 0;
}

@ -20,8 +20,11 @@ import xyz.soukup.ecoCraftCore.objects.Transaction;
import xyz.soukup.ecoCraftCore.objects.VirtualChest;
import xyz.soukup.ecoCraftCore.utilities.Converter;
import xyz.soukup.ecoCraftCore.utilities.InventoryUtils;
import xyz.soukup.ecoCraftCore.utilities.Messages;
import xyz.soukup.ecoCraftCore.utilities.PDC;
import java.util.HashMap;
public class ShopLogic implements Listener {
@EventHandler
@ -52,12 +55,13 @@ public class ShopLogic implements Listener {
event.setCancelled(true);
Player player = event.getPlayer();
if (VirtualChestLogic.openedChests.containsKey(shop.getVirtualChestID())){
event.getPlayer().sendPlainMessage("to by neslo");
Messages.send(player, "shop.error.chest-open");
return;
}
Player player = event.getPlayer();
Gui gui = buildShopGui(player, shop);
@ -78,18 +82,26 @@ public class ShopLogic implements Listener {
int amount = shop.getAmount();
if (buyPrice != 0){
HashMap<String, String> hashMap = new HashMap<>();
hashMap.put("amount", Integer.toString(amount));
hashMap.put("price", String.format("%.2f", buyPrice));
GuiItem one = ItemBuilder
.from(Material.LIME_WOOL)
.name(Converter.toComponent("&aKoupit " + amount + "ks za " + String.format("%.2f", buyPrice)))
.name(Messages.get("menu.shop.buy", hashMap))
.asGuiItem();
one.setAction(event -> {
event.setCancelled(true);
ShopLogic.buy(shop, player, 1);
});
hashMap.put("amount", Integer.toString(amount*8));
hashMap.put("price", String.format("%.2f", buyPrice*8));
GuiItem eight = ItemBuilder
.from(Material.LIME_WOOL)
.name(Converter.toComponent("&aKoupit " + amount*8 + "ks za " + String.format("%.2f", buyPrice*8)))
.name(Messages.get("menu.shop.buy", hashMap))
.asGuiItem();
eight.setAction(event -> {
event.setCancelled(true);
@ -102,9 +114,14 @@ public class ShopLogic implements Listener {
}
if (sellPrice != 0){
HashMap<String, String> hashMap = new HashMap<>();
hashMap.put("amount", Integer.toString(amount));
hashMap.put("price", String.format("%.2f", sellPrice));
GuiItem one = ItemBuilder
.from(Material.YELLOW_WOOL)
.name(Converter.toComponent("&eProdat " + amount + "ks za " + String.format("%.2f", sellPrice)))
.name(Messages.get("menu.shop.sell", hashMap))
.asGuiItem();
one.setAction(event -> {
@ -112,9 +129,13 @@ public class ShopLogic implements Listener {
ShopLogic.sell(shop, player, 1);
});
hashMap.put("amount", Integer.toString(amount*8));
hashMap.put("price", String.format("%.2f", sellPrice*8));
GuiItem eight = ItemBuilder
.from(Material.YELLOW_WOOL)
.name(Converter.toComponent("&eProdat " + amount*8 + "ks za " + String.format("%.2f", sellPrice*8)))
.name(Messages.get("menu.shop.sell", hashMap))
.asGuiItem();
eight.setAction(event -> {
@ -140,7 +161,7 @@ public class ShopLogic implements Listener {
public static void buy(Shop shop, Player player, int multiplier){
if (VirtualChestLogic.openedChests.containsKey(shop.getVirtualChestID())){
player.sendPlainMessage("to by neslo");
Messages.send(player, "shop.error.chest-open");
return;
}
@ -152,7 +173,7 @@ public class ShopLogic implements Listener {
Account account = Account.getOrCreate(player);
if (price > account.getBalance()){
player.sendPlainMessage("nemaš dost mony");
Messages.send(player, "generic.error.no-money.self");
return;
}
@ -165,12 +186,12 @@ public class ShopLogic implements Listener {
Inventory playerInventory = player.getInventory();
if (InventoryUtils.getSpaceLeft(playerInventory, itemStack) < amount){
player.sendPlainMessage("Nemáš dost místa v invu");
Messages.send(player, "generic.error.no-space.self");
return;
}
if (!virtualChest.removeItem(itemStack)){
player.sendPlainMessage("není dost věcí v chestce");
Messages.send(player, "generic.error.no-item.shop");
return;
}
@ -182,12 +203,19 @@ public class ShopLogic implements Listener {
transaction.process();
HashMap<String, String> hashMap = new HashMap<>();
hashMap.put("count", Integer.toString(amount));
hashMap.put("price", String.format("%.2f", price));
hashMap.put("item", itemStack.displayName().toString());
Messages.send(player, "shop.buy", hashMap);
}
public static void sell(Shop shop, Player player, int multiplier){
if (VirtualChestLogic.openedChests.containsKey(shop.getVirtualChestID())){
player.sendPlainMessage("to by neslo");
Messages.send(player, "shop.error.chest-open");
return;
}
@ -199,7 +227,7 @@ public class ShopLogic implements Listener {
Account account = Account.getOrCreate(shop.getOwnerType(), shop.getOwner());
if (price > account.getBalance()){
player.sendPlainMessage("shop nemá mony");
Messages.send(player, "generic.error.no-money.self");
return;
}
@ -212,12 +240,12 @@ public class ShopLogic implements Listener {
Inventory playerInventory = player.getInventory();
if (InventoryUtils.getCount(playerInventory, itemStack) < amount){
player.sendPlainMessage("nemáš prodejní itemy");
Messages.send(player, "generic.error.no-item.self");
return;
}
if (!virtualChest.addItem(itemStack)){
player.sendPlainMessage("není dost místa v chestce");
Messages.send(player, "generic.error.no-space.shop");
return;
}
@ -228,5 +256,12 @@ public class ShopLogic implements Listener {
Transaction transaction = new Transaction(price, "player", shop.getOwner(), "player", player.getName(), "playerShop", shop.getItemName() ,Integer.toString(amount));
transaction.process();
HashMap<String, String> hashMap = new HashMap<>();
hashMap.put("count", Integer.toString(amount));
hashMap.put("price", String.format("%.2f", price));
hashMap.put("item", itemStack.displayName().toString());
Messages.send(player, "shop.sell", hashMap);
}
}

@ -45,13 +45,9 @@ public class VirtualChestLogic implements Listener {
Integer count = openedChests.get(id);
count++;
openedChests.put(id, count);
player.sendPlainMessage(Integer.toString(count));
return;
}
player.sendPlainMessage(Integer.toString(id));
VirtualChest virtualChest = VirtualChest.findById(id);
if (virtualChest == null){

@ -12,16 +12,16 @@ import org.bukkit.entity.Player;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Objects;
import static xyz.soukup.ecoCraftCore.EcoCraftCore.plugin;
public class Messages {
private static File messagesFile;
private static YamlConfiguration messages;
public static void init() throws IOException {
messagesFile = new File(plugin.getDataFolder(), "messages.yml");
File messagesFile = new File(plugin.getDataFolder(), "messages.yml");
plugin.saveResource("messages.yml", true);
@ -36,18 +36,12 @@ public class Messages {
}
public static Component get(String key) {
String string = messages.getString(key);
if (string == null){
return Component.text(key);
}
String string = getString(key);
return MiniMessage.miniMessage().deserialize(string);
}
public static Component get(String key, HashMap<String, String> placeholders){
String string = messages.getString(key);
if (string == null){
return Component.text(key);
}
String string = getString(key);
TagResolver.Builder resolverBuilder = TagResolver.builder();
placeholders.forEach((k, value) -> resolverBuilder.resolver(Placeholder.unparsed(k, value)));
@ -63,4 +57,29 @@ public class Messages {
public static void send(CommandSender sender, String key, HashMap<String, String> placeholders){
sender.sendMessage(get(key, placeholders));
}
private static String getString(String key){
StringBuilder string = new StringBuilder();
if (messages.isString(key)){
string = new StringBuilder(Objects.requireNonNull(messages.getString(key)));
} else if (messages.isList(key)) {
boolean isFirst = true;
List<String> list = messages.getStringList(key);
for (String s : list){
if (isFirst){
isFirst = false;
string.append(s);
}else {
string.append("\n").append(s);
}
}
}else {
string = new StringBuilder(key);
}
return string.toString();
}
}

@ -1,5 +1,6 @@
generic:
error:
not-player: "<red>Na tuto akci musíš být hráč"
no-funds:
self: "<red>Nemáš dost pěněz"
shop: "<red>Obchod nemá dost peněz"
@ -14,25 +15,35 @@ shop:
already-shop: "<red>Tato cedule již je obchod"
not-marked: "<red>Musíš označit ceduly a chestku, aby jsi mohl vytvořit obchod"
empty-hand: "<red>Nedržíš v ruce žádný item"
buy: "<green>Koupil jsi <count>x <item> za <price>"
sell: "<green>Prodal jsi <count>x <item> za <price>"
chest-open: "<red>Nelze obchodovat, když je chestka obchodu otevřena."
buy: "<green>Koupil jsi <count>x <item> za <price>$"
sell: "<green>Prodal jsi <count>x <item> za <price>$"
created: "<green>Obchod vytvořen."
money:
error:
self-send: "<red>Nemůžeš poslat peníze sám sobě"
balance:
self: "<green>Tvůj zůstatek: <balance>"
player: "<green>Zůstatek hráče <name>: <balance>"
player: "<green>Zůstatek hráče <owner>: <balance>$"
give:
self: "<green>Dal sis <amount>"
player: "<green>Dal jsi hráči <receiver> <amount>"
self: "<green>Dal sis <amount>$"
player: "<green>Dal jsi <amount>$ hráči <receiver>"
other: "<green>Na účet <receiver> typu <receiver-type> jsi poslal <amount>$"
send:
player: "<green>Poslal jsi <amount> hráči <receiver>"
player: "<green>Poslal jsi <amount>$ hráči <receiver>"
receive:
player: "<green>Obdržel jsi <amount> od hráče <sender>"
player: "<green>Obdržel jsi <amount>$ od hráče <sender>"
remove:
self: "<green>Odebral sis <amount>$"
player: "<green>Hráči <sender> jsi odebral <amount>$"
other: "<green>Z účtu <sender> typu <sender-type> jsi odebral <amount>$"
marker:
marked:
chest: "<green>Truhla označena (<x>,<y>,<z>)"
sign: "<green>Cedule označena (<x>,<y>,<z>)"
primary: "<green>První pozice označena (<x>,<y>,<z>)"
secondary: "<green>Druhá pozice označena (<x>,<y>,<z>)"
menu:
shop:
buy: "<green>Koupit <amount>ks za <price>$"
sell: "<yellow>Prodat <amount>ks za <price>$"
Loading…
Cancel
Save