package net.t2code.commandguiv2.Spigot.cmdManagement; import net.t2code.commandguiv2.Spigot.Main; import net.t2code.commandguiv2.Spigot.config.config.SelectConfig; import net.t2code.commandguiv2.Spigot.config.gui.CreateGUI; import net.t2code.commandguiv2.Spigot.config.languages.SelectMessages; import net.t2code.commandguiv2.Util; import net.t2code.t2codelib.SPIGOT.api.commands.T2Ctab; import org.bukkit.Bukkit; 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_GUI implements CommandExecutor, TabCompleter { private static String prefix = Util.getPrefix(); @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if (args.length == 0) { if (!(sender instanceof Player)) { sender.sendMessage(SelectMessages.OnlyForPlayer); return false; } Player player = (Player) sender; Commands.gui(player); } else { if (args[0].equals(SelectConfig.getAdminSubCommand())) { if (args.length == 1) { Help.sendHelp(sender, prefix); return false; } switch (args[1].toLowerCase()) { case "info": case "plugin": case "pl": case "version": case "ver": if (sender.hasPermission("commandgui.command.info")) { Commands.info(sender); } else sender.sendMessage(SelectMessages.NoPermissionForCommand .replace("[cmd]", "/commandgui admin").replace("[perm]", "commandgui.command.info")); break; case "reload": case "rl": if (sender.hasPermission("commandgui.admin")) { Commands.reload(sender); } else sender.sendMessage(SelectMessages.NoPermissionForCommand .replace("[cmd]", "/commandgui admin").replace("[perm]", "commandgui.admin")); break; case "createdefaultgui": if (sender.hasPermission("commandgui.admin")) { CreateGUI.configCreate(); sender.sendMessage(SelectMessages.DefaultGUIcreate.replace("[directory]", Main.getPath() + "/GUIs/default.yml")); } else sender.sendMessage(SelectMessages.NoPermissionForCommand .replace("[cmd]", "/commandgui admin").replace("[perm]", "commandgui.admin")); break; case "give": if (args.length == 3) { if (sender.hasPermission("commandgui.giveitem.other")) { Player target = Bukkit.getPlayer(args[2]); Commands.give(sender, target); } else sender.sendMessage(SelectMessages.NoPermissionForCommand.replace("[cmd]", "/commandgui give") .replace("[perm]", "commandgui.command.give")); } else Help.sendHelp(sender, prefix); break; case "help": default: Help.sendHelp(sender, prefix); break; } } else { if (!args[0].equalsIgnoreCase("updateinfo")){ if (sender instanceof Player) { Player player = (Player) sender; Commands.gui(player, args[0]); return false; } Help.sendHelp(sender, prefix); } } } return false; } //TabCompleter public static HashMap arg1 = new HashMap(); private static HashMap arg2 = new HashMap() {{ put("reload", "commandgui.admin"); put("rl", "commandgui.admin"); put("createdefaultgui", "commandgui.admin"); put("give", "commandgui.giveitem.other"); put("info", "commandgui.command.info"); }}; @Override public List onTabComplete(CommandSender sender, Command cmd, String s, String[] args) { List list = new ArrayList<>(); T2Ctab.tab(list, sender, 0, args, arg1); T2Ctab.tab(list, sender, 0, SelectConfig.getAdminSubCommand(), 1, args, arg2); T2Ctab.tab(list, sender, 1, "give", 2, args, "commandgui.giveitem.other", true); return list; } }