package net.t2code.commandguiv2.Spigot.cmdManagement; import net.t2code.commandguiv2.Spigot.config.config.SelectConfig; import net.t2code.commandguiv2.Spigot.config.languages.SelectMessages; import net.t2code.commandguiv2.Util; import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.command.TabCompleter; import org.bukkit.entity.Player; import java.util.ArrayList; import java.util.HashMap; import java.util.List; public class CmdExecuter_GUIItem implements CommandExecutor, TabCompleter { private static String prefix = Util.getPrefix(); @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { Player player = (Player) sender; if (sender.hasPermission("commandgui.useitem.toggle")) { if (args.length == 0) { if (SelectConfig.getUseItem_AllowToggle()) { Help.sendGUIItemHelp(sender); } else T2Csend.sender(sender, "§4UseItem toggle is disabled!");// todo } else { if (args.length == 1 || args.length == 2) { if (sender instanceof Player) { if (SelectConfig.getUseItem_AllowToggle()) { switch (args[0].toLowerCase()) { case "on": Commands.itemOn(player); break; case "off": Commands.itemOff(player); break; case "slot": if (args.length == 2) { try { Commands.onSetSlot(player, Integer.valueOf(args[1])); } catch (Exception e5) { T2Csend.player(player, SelectMessages.ItemSlot_wrongValue); } } else T2Csend.player(player, "§4Use: §7/gui-item slot [slot]"); break; default: Help.sendHelp(player, prefix); } } else T2Csend.sender(sender, "§4UseItem toggle is disabled!");// todo } else sender.sendMessage(SelectMessages.OnlyForPlayer); } } } else sender.sendMessage(SelectMessages.NoPermissionForCommand.replace("[cmd]", "/commandgui-item") .replace("[perm]", "commandgui.useitem.toggle")); return false; } //TabCompleter private static HashMap arg1 = new HashMap() {{ put("on", "commandgui.useitem.toggle"); put("off", "commandgui.useitem.toggle"); if (SelectConfig.getUseItem_AllowSetSlot()) { put("slot", "commandgui.useitem.toggle"); } }}; @Override public List onTabComplete(CommandSender sender, Command cmd, String s, String[] args) { List list = new ArrayList<>(); if (sender instanceof Player) { if (SelectConfig.getUseItem_AllowToggle()) { Player p = (Player) sender; if (args.length == 1) { for (String command : arg1.keySet()) { Boolean passend = true; for (int i = 0; i < args[0].length(); i++) { if (args[0].length() >= command.length()) { passend = false; } else { if (args[0].charAt(i) != command.charAt(i)) { passend = false; } } } if (hasPermission(p, arg1.get(command)) && passend) { list.add(command); } } } } } return list; } public static boolean hasPermission(Player player, String permission) { if (player.isOp()) { return true; } String[] Permissions = permission.split(";"); for (String perm : Permissions) { if (player.hasPermission(perm)) { return true; } } return false; } }