48 lines
1.8 KiB
Java
Raw Normal View History

package net.t2code.alias.Spigot.cmdManagement;
import net.t2code.alias.Spigot.Main;
import net.t2code.alias.Spigot.objects.SubAliasObject;
import net.t2code.t2codelib.SPIGOT.api.commands.T2Ctab;
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<String, String> arg1 = new HashMap<String, String>();
@EventHandler
public void onTab(TabCompleteEvent e) {
String buffer = e.getBuffer();
String[] imp = buffer.replace("/", "").split(" ");
2022-07-09 04:40:03 +02:00
if (!Main.allAliases.contains(imp[0]) || !Main.allForSubAliases.contains(imp[0])){
return;
}
List<String> list = new ArrayList<>(Collections.emptyList());
2022-07-09 04:40:03 +02:00
arg1.clear();
for (String sals : Main.allSubAliases) {
2022-07-09 04:40:03 +02:00
SubAliasObject aliasObject = Main.subAliasHashMap.get(sals);
if (!buffer.contains(aliasObject.subAliasFor)) continue;
2022-07-09 04:40:03 +02:00
String[] im = aliasObject.subAliasFor.split(" ");
String input = buffer.replace("/" + im[0] + " ", "");
String[] args = input.split(" ", -1);
2022-07-09 04:40:03 +02:00
for (String al : aliasObject.subAliasList) {
arg1.put(al, aliasObject.permission.replace("<alias>", al.toLowerCase()));
}
2022-07-09 04:40:03 +02:00
int arg = aliasObject.subAliasArg;
if (args.length - 1 == arg) {
2022-07-09 04:40:03 +02:00
for (String command : aliasObject.subAliasList) {
if (T2Ctab.hasPermission(e.getSender(), arg1.get(command)) && T2Ctab.passend(command, args[arg])) {
list.add(command);
}
}
}
}
e.setCompletions(list);
}
}