2022-07-07 05:54:36 +02:00
|
|
|
package net.t2code.alias.Spigot.cmdManagement;
|
|
|
|
|
|
|
|
import net.t2code.alias.Spigot.Main;
|
|
|
|
import net.t2code.alias.Spigot.objects.SubAliasObject;
|
2022-10-25 16:38:16 +02:00
|
|
|
import net.t2code.t2codelib.SPIGOT.api.commands.T2Ctab;
|
2022-07-07 05:54:36 +02:00
|
|
|
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;
|
|
|
|
}
|
2022-07-19 22:55:25 +02:00
|
|
|
List<String> list = new ArrayList<>(Collections.emptyList());
|
2022-07-09 04:40:03 +02:00
|
|
|
arg1.clear();
|
|
|
|
|
2022-07-07 05:54:36 +02:00
|
|
|
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-07 05:54:36 +02:00
|
|
|
|
2022-07-09 04:40:03 +02:00
|
|
|
String[] im = aliasObject.subAliasFor.split(" ");
|
2022-07-07 05:54:36 +02:00
|
|
|
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-07 05:54:36 +02:00
|
|
|
}
|
2022-07-09 04:40:03 +02:00
|
|
|
int arg = aliasObject.subAliasArg;
|
2022-07-07 05:54:36 +02:00
|
|
|
if (args.length - 1 == arg) {
|
2022-07-09 04:40:03 +02:00
|
|
|
for (String command : aliasObject.subAliasList) {
|
2022-10-25 16:38:16 +02:00
|
|
|
if (T2Ctab.hasPermission(e.getSender(), arg1.get(command)) && T2Ctab.passend(command, args[arg])) {
|
2022-07-07 05:54:36 +02:00
|
|
|
list.add(command);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
e.setCompletions(list);
|
|
|
|
}
|
|
|
|
}
|