T2Code-Alias-Bungee/src/main/java/net/t2code/alias/Bungee/cmdManagement/RegisterCommands.java

124 lines
5.5 KiB
Java

package net.t2code.alias.Bungee.cmdManagement;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.chat.ClickEvent;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.plugin.Command;
import net.t2code.alias.Bungee.Main;
import net.t2code.alias.Bungee.config.languages.SelectMessages;
import net.t2code.alias.Bungee.objects.AliasObjekt;
import net.t2code.t2codelib.BUNGEE.api.commands.T2CBcmd;
import net.t2code.t2codelib.BUNGEE.api.messages.T2CBreplace;
import net.t2code.t2codelib.BUNGEE.api.messages.T2CBsend;
import net.t2code.t2codelib.SPIGOT.api.messages.T2CtextBuilder;
public class RegisterCommands extends Command {
private final String alias;
private final String prefix = Main.prefix;
public RegisterCommands(String alias) {
super(alias);
this.alias = alias;
}
@Override
public void execute(CommandSender sender, String[] args) {
AliasObjekt Alias = Main.aliasHashMap.get(alias);
if (!Alias.aliasEnable) {
T2CBsend.sender(sender, SelectMessages.aliasDisabled);
return;
}
if (sender instanceof ProxiedPlayer) {
ProxiedPlayer player = (ProxiedPlayer) sender;
if (Alias.serverProtectionEnable) {
if (Alias.serverProtectionMode.equalsIgnoreCase("blacklist") && Alias.serverProtectionList.contains(player.getServer().getInfo().getName())) {
return;
}
if (Alias.serverProtectionMode.equalsIgnoreCase("whitelist") && !Alias.serverProtectionList.contains(player.getServer().getInfo().getName())) {
return;
}
}
if (Alias.adminEnable) {
if (player.hasPermission(Alias.adminPermission)) {
if (Alias.adminCommandEnable) {
for (String cmd : Alias.adminCommands) {
if (Alias.adminCommandAsConsole) {
T2CBcmd.Console(cmd.replace("[player]", player.getName()));
} else {
T2CBcmd.Player(player, cmd.replace("[player]", player.getName()));
}
}
}
if (Alias.adminMessageEnable) {
for (String msg : Alias.adminMessages) {
String text = T2CBreplace.replace(prefix, msg);
String hover = T2CBreplace.replace(prefix, Alias.adminHover);
if (Alias.adminTextBuilder) {
T2CtextBuilder textBuilder = new T2CtextBuilder(text);
textBuilder.addHover(hover);
if (Alias.adminClickEvent) {
textBuilder.addClickEvent(ClickEvent.Action.valueOf(Alias.adminAction), Alias.adminActionValue);
}
player.sendMessage(textBuilder.build());
} else {
T2CBsend.player(player, text);
}
}
}
return;
}
}
if (Alias.permNecessary) {
if (!(player.hasPermission("t2code.alias.use." + alias.toLowerCase()) || player.hasPermission("t2code.alias.admin"))) {
T2CBsend.player(player, SelectMessages.noPermissionForCommand.replace("[cmd]", "/" + alias.toLowerCase())
.replace("[perm]", "t2code.alias.use." + alias.toLowerCase()));
return;
}
}
if (Alias.command_Enable) {
for (String cmd : Alias.command) {
if (Alias.commandAsConsole) {
T2CBcmd.Console(cmd.replace("[player]", player.getName()));
} else {
T2CBcmd.Player(player, cmd.replace("[player]", player.getName()));
}
}
}
if (Alias.messageEnable) {
for (String msg : Alias.messages) {
String text = T2CBreplace.replace(prefix, msg);
String hover = T2CBreplace.replace(prefix, Alias.hover);
if (Alias.textBuilder) {
T2CtextBuilder textBuilder = new T2CtextBuilder(text);
textBuilder.addHover(hover);
if (Alias.clickEvent) {
textBuilder.addClickEvent(ClickEvent.Action.valueOf(Alias.action), Alias.actionValue);
}
player.sendMessage(textBuilder.build());
} else {
T2CBsend.player(player, text);
}
}
}
} else {
if (Alias.consoleEnable) {
if (Alias.consoleCommandEnable) {
for (String cmd : Alias.consoleCommands) {
T2CBcmd.Console(cmd.replace("[player]", sender.getName()));
}
}
if (Alias.consoleMessageEnable) {
for (String msg : Alias.consoleMessages) {
T2CBsend.console(T2CBreplace.replace(prefix, msg));
}
}
} else T2CBsend.sender(sender, SelectMessages.onlyForPlayer);
}
return;
}
}