New features: - The option "CooldownInSec.Global" has been added to give an alias a global cooldown that counts for all players. - The option "CooldownInSec.Player" has been added to give an alias a cooldown that counts for a single player. The permissions have been revised: - t2code.alias.admin -> t2c.alias.admin - t2code.alias.updatemsg -> t2c.alias.updatemsg - t2code.alias.command.reload -> t2c.alias.command.reload - t2code.alias.command.info -> t2c.alias.command.info - t2code.alias.buy.bypass -> t2c.alias.buy.all.bypass - The bypass for payment can now also be set individually for each alias / subalias: t2c.alias.buy.[alias].bypass / t2c.alias.sub.buy.all.bypass
48 lines
1.8 KiB
Java
48 lines
1.8 KiB
Java
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(" ");
|
|
if (!Main.allAliases.contains(imp[0]) || !Main.allForSubAliases.contains(imp[0])){
|
|
return;
|
|
}
|
|
List<String> 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("[alias]", al.toLowerCase()));
|
|
}
|
|
int arg = aliasObject.subAliasArg;
|
|
if (args.length - 1 == arg) {
|
|
for (String command : aliasObject.subAliasList) {
|
|
if (T2Ctab.hasPermission(e.getSender(), arg1.get(command)) && T2Ctab.passend(command, args[arg])) {
|
|
list.add(command);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
e.setCompletions(list);
|
|
}
|
|
}
|