package net.t2code.alias.Spigot.cmdManagement; import net.t2code.alias.Spigot.Main; import net.t2code.alias.Spigot.objects.SubAliasObject; import net.t2code.lib.Spigot.Lib.commands.Tab; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.server.TabCompleteEvent; import java.util.*; public class TabEvent implements Listener { private static HashMap arg1 = new HashMap(); @EventHandler public void onTab(TabCompleteEvent e) { String buffer = e.getBuffer(); String[] imp = buffer.replace("/", "").split(" "); if (!Main.allAliases.contains(imp[0]) || !Main.allForSubAliases.contains(imp[0])){ return; } List list = new ArrayList<>(Collections.emptyList()); arg1.clear(); for (String sals : Main.allSubAliases) { SubAliasObject aliasObject = Main.subAliasHashMap.get(sals); if (!buffer.contains(aliasObject.subAliasFor)) continue; String[] im = aliasObject.subAliasFor.split(" "); String input = buffer.replace("/" + im[0] + " ", ""); String[] args = input.split(" ", -1); for (String al : aliasObject.subAliasList) { arg1.put(al, aliasObject.permission.replace("", al.toLowerCase())); } int arg = aliasObject.subAliasArg; if (args.length - 1 == arg) { for (String command : aliasObject.subAliasList) { if (Tab.hasPermission(e.getSender(), arg1.get(command)) && Tab.passend(command, args[arg])) { list.add(command); } } } } e.setCompletions(list); } }