From 352156a89cdb63111561123d100cb8fca74dab85 Mon Sep 17 00:00:00 2001 From: Lilac Date: Fri, 18 Oct 2019 17:09:08 +0100 Subject: [PATCH] Updated give syntax --- .../songoda/ultimatekits/UltimateKits.java | 3 +- .../ultimatekits/commands/CommandGive.java | 85 -------------- .../ultimatekits/commands/CommandKit.java | 105 +++++++++++------- 3 files changed, 64 insertions(+), 129 deletions(-) delete mode 100644 src/main/java/com/songoda/ultimatekits/commands/CommandGive.java diff --git a/src/main/java/com/songoda/ultimatekits/UltimateKits.java b/src/main/java/com/songoda/ultimatekits/UltimateKits.java index 0eca37a..9dc65d2 100644 --- a/src/main/java/com/songoda/ultimatekits/UltimateKits.java +++ b/src/main/java/com/songoda/ultimatekits/UltimateKits.java @@ -121,8 +121,7 @@ public class UltimateKits extends SongodaPlugin { .addSubCommand(new CommandEdit(guiManager)) .addSubCommand(new CommandKey()) .addSubCommand(new CommandSet()) - .addSubCommand(new CommandRemove()) - .addSubCommand(new CommandGive()); + .addSubCommand(new CommandRemove()); // Event registration diff --git a/src/main/java/com/songoda/ultimatekits/commands/CommandGive.java b/src/main/java/com/songoda/ultimatekits/commands/CommandGive.java deleted file mode 100644 index 81052e8..0000000 --- a/src/main/java/com/songoda/ultimatekits/commands/CommandGive.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.songoda.ultimatekits.commands; - -import com.songoda.core.commands.AbstractCommand; -import com.songoda.ultimatekits.UltimateKits; -import com.songoda.ultimatekits.kit.Kit; -import org.bukkit.Bukkit; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import java.util.ArrayList; -import java.util.List; - -public class CommandGive extends AbstractCommand { - - final UltimateKits instance; - - public CommandGive() { - super(false, "give"); - instance = UltimateKits.getInstance(); - } - - @Override - protected ReturnType runCommand(CommandSender sender, String... args) { - if (args.length != 2) return ReturnType.SYNTAX_ERROR; - - if (!args[0].equalsIgnoreCase("all") && Bukkit.getPlayer(args[0]) == null) { - instance.getLocale().newMessage("&cThat username does not exist, or the user is offline!").sendPrefixedMessage(sender); - return ReturnType.FAILURE; - } - - if (instance.getKitManager().getKit(args[1]) == null) { - instance.getLocale().getMessage("command.kit.kitdoesntexist").sendPrefixedMessage(sender); - } - - Player player = args[0].equalsIgnoreCase("all") ? null : Bukkit.getPlayer(args[0]); - Kit kit = instance.getKitManager().getKit(args[1]); - - if (player != null) { - kit.giveKit(player); - instance.getLocale().getMessage("event.claim.givesuccess") - .processPlaceholder("kit", kit.getShowableName()) - .sendPrefixedMessage(sender); - } else { - Bukkit.getOnlinePlayers().forEach(onlinePlayer -> { - kit.giveKit(onlinePlayer); - instance.getLocale().getMessage("event.claim.givesuccess") - .processPlaceholder("kit", kit.getShowableName()) - .sendPrefixedMessage(sender); - }); - } - - return ReturnType.SUCCESS; - } - - @Override - protected List onTab(CommandSender sender, String... args) { - List tab = new ArrayList<>(); - - if (!(sender instanceof Player)) return tab; - - if (args.length == 1) { - tab.add("all"); - for (Player player : Bukkit.getOnlinePlayers()) tab.add(player.getName()); - } else if (args.length == 2) { - for (Kit kit : instance.getKitManager().getKits()) tab.add(kit.getName()); - } - - return tab; - } - - @Override - public String getPermissionNode() { - return "ultimatekits.admin"; - } - - @Override - public String getSyntax() { - return "/KitAdmin give "; - } - - @Override - public String getDescription() { - return "Give a kit to a player."; - } -} diff --git a/src/main/java/com/songoda/ultimatekits/commands/CommandKit.java b/src/main/java/com/songoda/ultimatekits/commands/CommandKit.java index bdb3baf..cc2f54d 100644 --- a/src/main/java/com/songoda/ultimatekits/commands/CommandKit.java +++ b/src/main/java/com/songoda/ultimatekits/commands/CommandKit.java @@ -19,67 +19,88 @@ public class CommandKit extends AbstractCommand { final GuiManager guiManager; public CommandKit(GuiManager guiManager) { - super(true, "kit"); + super(false, "kit"); this.guiManager = guiManager; } @Override protected ReturnType runCommand(CommandSender sender, String... args) { - if (!(sender instanceof Player) && args.length != 2) { - sender.sendMessage("Kits:"); - for (Kit kit : instance.getKitManager().getKits()) { - sender.sendMessage(" - " + kit.getName()); - } + if (args.length > 2) return ReturnType.SYNTAX_ERROR; + + if (args.length == 0 && sender instanceof Player) { + // /kit - Opens GUI. + guiManager.showGUI((Player) sender, new KitSelectorGui(instance, (Player) sender)); return ReturnType.SUCCESS; } - if (args.length == 0) { - guiManager.showGUI((Player) sender, new KitSelectorGui(instance, (Player) sender)); - } else if (args.length == 1) { - Player player = (Player) sender; - String kitName = args[0].toLowerCase(); - if (instance.getKitManager().getKit(kitName) == null) { - instance.getLocale().getMessage("command.kit.kitdoesntexist").sendPrefixedMessage(player); - return ReturnType.FAILURE; - } - Kit kit = instance.getKitManager().getKit(kitName); - if (sender.hasPermission("ultimatekits.admin")) { - kit.processGenericUse(player, true); - } else { - kit.buy(player, guiManager); - } - } else if (args.length == 2) { - String kitName = args[0].toLowerCase(); - if (instance.getKitManager().getKit(kitName) == null) { - instance.getLocale().getMessage("command.kit.kitdoesntexist").sendPrefixedMessage(sender); + + if (!sender.hasPermission("ultimatekits.admin")) { + instance.getLocale().getMessage("command.general.noperms").sendPrefixedMessage(sender); + return ReturnType.FAILURE; + } + + if (instance.getKitManager().getKit(args[0]) == null) { + instance.getLocale().getMessage("command.kit.kitdoesntexist").sendPrefixedMessage(sender); + return ReturnType.FAILURE; + } + + Kit kit = instance.getKitManager().getKit(args[0]); + + if (args.length == 1) { + // /kit - Gives kit to self. + if (!(sender instanceof Player)) { + instance.getLocale().newMessage("&cYou must be a player to use this command!").sendMessage(sender); return ReturnType.FAILURE; } - Player player2 = Bukkit.getPlayer(args[1]); - if (player2 == null || !player2.isOnline()) { - instance.getLocale().getMessage("command.kit.playernotfound").sendPrefixedMessage(sender); + kit.giveKit((Player) sender); + return ReturnType.SUCCESS; + } else if (args.length == 2) { + // /kit - Gives kit to another player. + + if (!args[1].equalsIgnoreCase("all") && Bukkit.getPlayer(args[1]) == null) { + instance.getLocale().newMessage("&cThat username does not exist, or the user is offline!").sendPrefixedMessage(sender); return ReturnType.FAILURE; } - if (sender instanceof Player) { - Player player = (Player) sender; - if (!Methods.canGiveKit(player)) { - UltimateKits.getInstance().getLocale().getMessage("command.general.noperms") - .sendPrefixedMessage(player); - return ReturnType.FAILURE; - } + + Player player = Bukkit.getPlayer(args[1]); + String who = player != null ? player.getName() : "everyone"; + + if (player != null) { + kit.giveKit(player); + instance.getLocale().getMessage("event.claim.givesuccess") + .processPlaceholder("kit", kit.getShowableName()) + .sendPrefixedMessage(sender); + } else { + Bukkit.getOnlinePlayers().forEach(onlinePlayer -> { + kit.giveKit(onlinePlayer); + instance.getLocale().getMessage("event.claim.givesuccess") + .processPlaceholder("kit", kit.getShowableName()) + .sendPrefixedMessage(sender); + }); } - Kit kit = instance.getKitManager().getKit(kitName); - kit.processGenericUse(player2, true); - instance.getLocale().newMessage("&7You gave &9" + player2.getDisplayName() + "&7 kit &9" + kit.getShowableName() + "&7.") + + instance.getLocale().newMessage("&7You gave &9" + who + "&7 kit &9" + kit.getShowableName() + "&7.") .sendPrefixedMessage(sender); - } else { - return ReturnType.SYNTAX_ERROR; + return ReturnType.SUCCESS; } - return ReturnType.SUCCESS; + + return ReturnType.SYNTAX_ERROR; } @Override protected List onTab(CommandSender sender, String... args) { - return new ArrayList<>(); + List tab = new ArrayList<>(); + + if (!(sender instanceof Player)) return tab; + + if (args.length == 1) { + for (Kit kit : instance.getKitManager().getKits()) tab.add(kit.getName()); + } else if (args.length == 2) { + tab.add("all"); + Bukkit.getOnlinePlayers().forEach(player -> tab.add(player.getName())); + } + + return tab; } @Override