package net.t2code.alias.Bungee.cmdManagement; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.connection.ProxiedPlayer; import net.md_5.bungee.api.plugin.Command; import net.md_5.bungee.api.plugin.TabExecutor; import net.t2code.alias.Bungee.Main; import net.t2code.alias.Bungee.config.languages.SelectMessages; import net.t2code.lib.Bungee.Lib.messages.Bsend; import java.util.ArrayList; import java.util.HashMap; import java.util.List; public class Alias_CmdExecuter extends Command implements TabExecutor { String Prefix; public Alias_CmdExecuter() { super("t2code-alias","t2code.alias.admin","t2c-a", "alias"); } @Override public void execute(CommandSender sender, String[] args) { Prefix = Main.prefix; if (args.length == 0) { // Command if (sender.hasPermission("t2code.alias.command.info")) { Commands.info(sender); } else Bsend.sender(sender, SelectMessages.NoPermissionForCommand.replace("[cmd]", "/t2code-alias info") .replace("[perm]", "t2code.alias.command.info")); } else { switch (args[0].toLowerCase()) { case "reload": case "rl": if (sender.hasPermission("t2code.alias.command.reload")) { Commands.reload(sender); } else Bsend.sender(sender, SelectMessages.NoPermissionForCommand.replace("[cmd]", "/t2code-alias reload") .replace("[perm]", "t2code.alias.command.reload")); break; case "info": case "plugin": case "version": if (sender.hasPermission("t2code.alias.command.info")) { Commands.info(sender); } else Bsend.sender(sender, SelectMessages.NoPermissionForCommand.replace("[cmd]", "/t2code-alias info") .replace("[perm]", "t2code.alias.command.info")); break; } } } //TabCompleter private static HashMap arg1 = new HashMap() {{ put("reload", "t2code.alias.command.reload"); put("rl", "t2code.alias.command.reload"); put("info", "t2code.alias.command.info"); }}; @Override public Iterable onTabComplete(CommandSender sender, String[] args) { List list = new ArrayList<>(); if (sender instanceof ProxiedPlayer) { ProxiedPlayer p = (ProxiedPlayer) 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(ProxiedPlayer player, String permission) { String[] Permissions = permission.split(";"); for (String perm : Permissions) { if (player.hasPermission(perm)) { return true; } } return false; } }