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 org.bukkit.plugin.Plugin; 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])) return; if (!Main.allForSubAliases.contains(imp[0])) return; arg1.clear(); List list = new ArrayList<>(Collections.emptyList()); for (String sals : Main.allSubAliases) { SubAliasObject sal = Main.subAliasHashMap.get(sals); if (!buffer.contains(sal.subAliasFor)) continue; String[] im = sal.subAliasFor.split(" "); String input = buffer.replace("/" + im[0] + " ", ""); String[] args = input.split(" ", -1); for (String al : sal.subAliasList) { arg1.put(al, "t2code.alias.use.subalias." + al.toLowerCase()); } int arg = sal.subAliasArg; if (args.length - 1 == arg) { for (String command : sal.subAliasList) { if (Tab.hasPermission(e.getSender(), arg1.get(command)) && Tab.passend(command, args[arg])) { list.add(command); } } } } e.setCompletions(list); } }