From b7a3a8df6f2550f6612f5266520d3ea531bde621 Mon Sep 17 00:00:00 2001 From: TrueDarkLord Date: Sun, 18 Feb 2024 19:44:21 -0700 Subject: [PATCH] 784 Slot Crystal Command (#793) SlotCrystal Command with tab complete and default permission. --- .../paper/commands/CECommand.java | 39 +++++++++++++++++++ .../paper/commands/CETab.java | 6 ++- paper/src/main/resources/plugin.yml | 3 ++ 3 files changed, 46 insertions(+), 2 deletions(-) diff --git a/paper/src/main/java/com/badbones69/crazyenchantments/paper/commands/CECommand.java b/paper/src/main/java/com/badbones69/crazyenchantments/paper/commands/CECommand.java index 963fd859..39cef8e2 100644 --- a/paper/src/main/java/com/badbones69/crazyenchantments/paper/commands/CECommand.java +++ b/paper/src/main/java/com/badbones69/crazyenchantments/paper/commands/CECommand.java @@ -558,6 +558,45 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command cmd, @N return true; } + case "slotcrystal", "sc" -> { // /ce slotcrystal [amount] [player] + if (hasPermission(sender, "slotcrystal")) { + int amount = 1; + Player player; + + if (args.length <= 2 && !isPlayer) { + sender.sendMessage(Messages.PLAYERS_ONLY.getMessage()); + return true; + } + + if (args.length >= 2) { + if (!checkInt(sender, args[1])) return true; + + amount = Integer.parseInt(args[1]); + } + + if (args.length >= 3) { + if (!this.methods.isPlayerOnline(args[2], sender)) return true; + player = this.methods.getPlayer(args[2]); + } else { + player = (Player) sender; + } + + if (this.methods.isInventoryFull(player)) return true; + + ItemStack item = starter.getSlotCrystalListener().getSlotCrystal(); + item.setAmount(amount); + + this.methods.addItemToInventory(player, item); + HashMap placeholders = new HashMap<>(); + placeholders.put("%Amount%", String.valueOf(amount)); + placeholders.put("%Player%", player.getName()); + sender.sendMessage(Messages.GIVE_PROTECTION_CRYSTAL.getMessage(placeholders)); + player.sendMessage(Messages.GET_PROTECTION_CRYSTAL.getMessage(placeholders)); + } + + return true; + } + case "dust" -> { // /ce dust [Amount] [Player] [Percent] if (hasPermission(sender, "dust")) { if (args.length >= 2) { diff --git a/paper/src/main/java/com/badbones69/crazyenchantments/paper/commands/CETab.java b/paper/src/main/java/com/badbones69/crazyenchantments/paper/commands/CETab.java index e83a3e02..657580cf 100644 --- a/paper/src/main/java/com/badbones69/crazyenchantments/paper/commands/CETab.java +++ b/paper/src/main/java/com/badbones69/crazyenchantments/paper/commands/CETab.java @@ -53,6 +53,8 @@ public List onTabComplete(@NotNull CommandSender sender, @NotNull Comman if (hasPermission(sender, "updateenchants")) completions.add("updateEnchants"); if (hasPermission(sender, "give")) completions.add("give"); if (hasPermission(sender, "bottle")) completions.add("bottle"); + if (hasPermission(sender, "slotcrystal")) completions.add("slotcrystal"); + return StringUtil.copyPartialMatches(args[0], completions, new ArrayList<>()); } else if (args.length == 2) { // /ce arg0 @@ -90,7 +92,7 @@ public List onTabComplete(@NotNull CommandSender sender, @NotNull Comman completions.add("transmog"); } - case "crystal", "scrambler" -> { + case "crystal", "scrambler", "slotcrystal" -> { completions.add("1"); completions.add("32"); completions.add("64"); @@ -143,7 +145,7 @@ public List onTabComplete(@NotNull CommandSender sender, @NotNull Comman completions.add("32"); completions.add("64"); } - case "crystal", "scrambler" -> this.plugin.getServer().getOnlinePlayers().forEach(player -> completions.add(player.getName())); + case "crystal", "scrambler", "slotcrystal" -> this.plugin.getServer().getOnlinePlayers().forEach(player -> completions.add(player.getName())); case "give" -> completions.add("Item:DIAMOND_HELMET, Amount:1, Name:&6&lHat, Protection:4, Overload:1-5, Hulk:2-5, Lore:&aLine 1.,&aLine 2."); } diff --git a/paper/src/main/resources/plugin.yml b/paper/src/main/resources/plugin.yml index 1c9f57d7..547a5e0b 100644 --- a/paper/src/main/resources/plugin.yml +++ b/paper/src/main/resources/plugin.yml @@ -130,6 +130,9 @@ permissions: crazyenchantments.crystal: default: op + + crazyenchantments.slotcrystal: + default: op crazyenchantments.scrambler: default: op