diff --git a/src/main/java/xyz/soukup/mineconomiaCoreV2/commands/admin.java b/src/main/java/xyz/soukup/mineconomiaCoreV2/commands/admin.java index ac572c7..a2e34f6 100644 --- a/src/main/java/xyz/soukup/mineconomiaCoreV2/commands/admin.java +++ b/src/main/java/xyz/soukup/mineconomiaCoreV2/commands/admin.java @@ -1,5 +1,6 @@ package xyz.soukup.mineconomiaCoreV2.commands; +import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; @@ -12,8 +13,10 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import xyz.soukup.mineconomiaCoreV2.tools.LangManager; import xyz.soukup.mineconomiaCoreV2.tools.PDC; +import xyz.soukup.mineconomiaCoreV2.variables.Transaction; import java.io.IOException; +import java.sql.SQLException; import java.util.List; import static xyz.soukup.mineconomiaCoreV2.core.sharedValues.config; @@ -22,42 +25,31 @@ public class admin implements TabExecutor { @Override public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s, @NotNull String[] strings) { - if (commandSender instanceof Player) { - Player player = (Player) commandSender; - if (!player.isOp() || strings.length == 0) { - - LangManager.message(commandSender, "error.command.admin.setruleritem.no-permissions"); - return true; + if (!commandSender.isOp()) { + LangManager.message(commandSender, "error.command.no-permissions"); + return false; } - if (strings[0].equalsIgnoreCase("setRulerItem")) { - - ItemStack playerHand = player.getInventory().getItemInMainHand(); - - if (playerHand.getType() == Material.AIR) { + if (strings.length == 0){ + LangManager.message(commandSender, "error.command.not-enough-arguments"); + } - LangManager.message(commandSender, "error.command.admin.setruleritem.invalid-item"); + switch (strings[0].toLowerCase()){ + case "setruleritem": + setRulerItem(commandSender); + return true; + case "givemoney": + try { + giveMoney(commandSender, strings); + } catch (SQLException e) { + throw new RuntimeException(e); + } return true; - } - - ItemMeta meta = playerHand.getItemMeta(); - PDC.WriteItemMetaPDC(meta, "ruler", PersistentDataType.INTEGER, 1); - playerHand.setItemMeta(meta); - - config.set("special-items.ruler", playerHand); - - try { - config.save("config.yml"); - } catch (IOException e) { - throw new RuntimeException(e); - } - LangManager.message(commandSender, "success.command.admin.setruleritem"); - return true; } - } + return false; } @@ -65,9 +57,48 @@ public class admin implements TabExecutor { public @Nullable List onTabComplete(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s, @NotNull String[] strings) { if (strings.length == 1 && commandSender.isOp()) { - return List.of("setRulerItem"); + return List.of("setRulerItem", "giveMoney"); } return List.of(); } + + private void giveMoney(CommandSender commandSender, String[] strings) throws SQLException { + if (strings.length < 3){ + LangManager.message(commandSender, "error.command.not-enough-arguments"); + return; + } + + Float amount = Float.valueOf(strings[2]); + + Transaction.prepareTransaction("server", "server", strings[1], "player", amount, "admin").process(); + LangManager.message(commandSender, "success.command.admin.give-money"); + } + + private void setRulerItem(CommandSender commandSender){ + Player player = (Player) commandSender; + + ItemStack playerHand = player.getInventory().getItemInMainHand(); + + if (playerHand.getType() == Material.AIR) { + LangManager.message(commandSender, "error.command.admin.setruleritem.invalid-item"); + return; + } + + ItemMeta meta = playerHand.getItemMeta(); + assert meta != null; + PDC.WriteItemMetaPDC(meta, "ruler", PersistentDataType.INTEGER, 1); + playerHand.setItemMeta(meta); + + config.set("special-items.ruler", playerHand); + + try { + config.save("config.yml"); + } catch (IOException e) { + throw new RuntimeException(e); + } + + LangManager.message(commandSender, "success.command.admin.setruleritem"); + + } } diff --git a/src/main/java/xyz/soukup/mineconomiaCoreV2/commands/money.java b/src/main/java/xyz/soukup/mineconomiaCoreV2/commands/money.java new file mode 100644 index 0000000..743d0e2 --- /dev/null +++ b/src/main/java/xyz/soukup/mineconomiaCoreV2/commands/money.java @@ -0,0 +1,21 @@ +package xyz.soukup.mineconomiaCoreV2.commands; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.command.TabExecutor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +public class money implements TabExecutor { + @Override + public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s, @NotNull String[] strings) { + return false; + } + + @Override + public @Nullable List onTabComplete(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s, @NotNull String[] strings) { + return List.of(); + } +} diff --git a/src/main/java/xyz/soukup/mineconomiaCoreV2/variables/Transaction.java b/src/main/java/xyz/soukup/mineconomiaCoreV2/variables/Transaction.java index 9ec89b6..6faed2e 100644 --- a/src/main/java/xyz/soukup/mineconomiaCoreV2/variables/Transaction.java +++ b/src/main/java/xyz/soukup/mineconomiaCoreV2/variables/Transaction.java @@ -224,5 +224,13 @@ public class Transaction { return transaction; } + public static Transaction prepareTransaction(Player senderPlayer, Player receiverPlayer, Float amount){ + String sender = senderPlayer.getDisplayName(); + String receiver = receiverPlayer.getDisplayName(); + + return prepareTransaction(sender, "player", receiver, "player", amount, "playertoplayer"); + } + + } diff --git a/src/main/resources/lang/czech.yml b/src/main/resources/lang/czech.yml index 1139f72..090088a 100644 --- a/src/main/resources/lang/czech.yml +++ b/src/main/resources/lang/czech.yml @@ -5,6 +5,8 @@ error: wrong-argument-count: "&cNesprávný počet parametrů!" no-permissions: "&cNemáš oprávnění!" invalid-player: "&cTento hráč neexistuje!" + invalid-arguments: "&cChybně zadané parametry!" + not-enough-arguments: "&cNedostatek parametrů!" tpw: invalid-world: "&cTento svět neexistuje!" already-in-world-self: "&cJiž jsi v tomto světě" @@ -12,7 +14,7 @@ error: admin: setruleritem: invalid-item: "&cNedržíš nic v ruce!" - no-permissions: "&cNemáš oprávnění!" + success: command: tpw: diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 1ee1bde..ba8fe2e 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -5,9 +5,17 @@ api-version: '1.21' commands: tpw: description: "Teleportuje tě do jiného světa" - usage: / [arguments] + usage: /tpw [player] tractor: description: "blieat" admin: description: "Utility command pro adminy" - usage: / [arguments] + usage: /admin + money: + description: "check current money balance" + usage: /money [player] + aliases: [penize, peníze, balance] + pay: + description: "let go of your money :D" + usage: /pay [group name] + aliases: [zaplatit, platit]