diff --git a/src/main/java/xyz/soukup/mineconomiaCoreV2/MineconomiaCoreV2.java b/src/main/java/xyz/soukup/mineconomiaCoreV2/MineconomiaCoreV2.java index a909521..466a06e 100644 --- a/src/main/java/xyz/soukup/mineconomiaCoreV2/MineconomiaCoreV2.java +++ b/src/main/java/xyz/soukup/mineconomiaCoreV2/MineconomiaCoreV2.java @@ -1,6 +1,7 @@ package xyz.soukup.mineconomiaCoreV2; import org.bukkit.configuration.InvalidConfigurationException; +import xyz.soukup.mineconomiaCoreV2.commands.admin; import xyz.soukup.mineconomiaCoreV2.commands.tabCompleter; import xyz.soukup.mineconomiaCoreV2.commands.teleportWorld; import org.bukkit.entity.Player; @@ -58,6 +59,9 @@ public final class MineconomiaCoreV2 extends JavaPlugin { Objects.requireNonNull(this.getCommand("tpw")).setExecutor(new teleportWorld()); Objects.requireNonNull(this.getCommand("tpw")).setTabCompleter(new tabCompleter()); + // setRulerItem registration + Objects.requireNonNull(this.getCommand("admin")).setExecutor(new admin()); + Objects.requireNonNull(this.getCommand("admin")).setTabCompleter(new admin()); } diff --git a/src/main/java/xyz/soukup/mineconomiaCoreV2/commands/admin.java b/src/main/java/xyz/soukup/mineconomiaCoreV2/commands/admin.java new file mode 100644 index 0000000..ac572c7 --- /dev/null +++ b/src/main/java/xyz/soukup/mineconomiaCoreV2/commands/admin.java @@ -0,0 +1,73 @@ +package xyz.soukup.mineconomiaCoreV2.commands; + +import org.bukkit.Material; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.command.TabExecutor; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.persistence.PersistentDataType; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import xyz.soukup.mineconomiaCoreV2.tools.LangManager; +import xyz.soukup.mineconomiaCoreV2.tools.PDC; + +import java.io.IOException; +import java.util.List; + +import static xyz.soukup.mineconomiaCoreV2.core.sharedValues.config; + +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 (strings[0].equalsIgnoreCase("setRulerItem")) { + + ItemStack playerHand = player.getInventory().getItemInMainHand(); + + if (playerHand.getType() == Material.AIR) { + + LangManager.message(commandSender, "error.command.admin.setruleritem.invalid-item"); + 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; + } + + @Override + 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(); + } +} diff --git a/src/main/resources/lang/czech.yml b/src/main/resources/lang/czech.yml index dc45010..1139f72 100644 --- a/src/main/resources/lang/czech.yml +++ b/src/main/resources/lang/czech.yml @@ -9,8 +9,14 @@ error: invalid-world: "&cTento svět neexistuje!" already-in-world-self: "&cJiž jsi v tomto světě" already-in-world: "&6%s1 &cjiž je v tomto světě" + admin: + setruleritem: + invalid-item: "&cNedržíš nic v ruce!" + no-permissions: "&cNemáš oprávnění!" success: command: tpw: teleported: "&2%s1 &abyl úspěšně teleportován z &2%s2 &ado &2%s3" - teleported-self: "&aÚspěšně si se teleportoval z &2%s1 &ado &2%s2" \ No newline at end of file + teleported-self: "&aÚspěšně si se teleportoval z &2%s1 &ado &2%s2" + admin: + setruleritem: "&aRuler Item úspěšně nastaven!" \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 7786bc5..1ee1bde 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -8,3 +8,6 @@ commands: usage: / [arguments] tractor: description: "blieat" + admin: + description: "Utility command pro adminy" + usage: / [arguments]