T2C-AutoResponse/src/main/java/net/t2code/autoresponse/Spigot/event/ResponseListener.java

123 lines
5.6 KiB
Java

package net.t2code.autoresponse.Spigot.event;
import net.t2code.autoresponse.Spigot.Main;
import net.t2code.autoresponse.Spigot.config.config.SelectConfig;
import net.t2code.autoresponse.Spigot.objects.ResponsesObject;
import net.t2code.autoresponse.Spigot.system.BCommand_Sender_Reciver;
import net.t2code.autoresponse.Spigot.system.BungeeSend;
import net.t2code.autoresponse.Util;
import net.t2code.t2codelib.SPIGOT.api.commands.T2Ccmd;
import net.t2code.t2codelib.SPIGOT.api.messages.T2Creplace;
import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
import net.t2code.t2codelib.SPIGOT.api.plugins.T2CpluginCheck;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.scheduler.BukkitRunnable;
public class ResponseListener implements Listener {
@EventHandler
public static void ChatListener(AsyncPlayerChatEvent e) {
Player player = e.getPlayer();
boolean bool = false;
for (String s : Main.allResponse) {
if (e.getMessage().contains(s)) bool = true;
}
if (!bool) return;
for (ResponsesObject response : Main.allResponses) {
if (!response.permNecessary || player.hasPermission(response.permission)) {
if (response.contains) {
for (String responseKey : response.responseKeys) {
if (e.getMessage().toLowerCase().contains(responseKey.toLowerCase())) {
execute(e, player, response, responseKey);
return;
}
}
} else {
for (String responseKey : response.responseKeys) {
if (e.getMessage().toLowerCase().equals(responseKey.toLowerCase())) {
execute(e, player, response, responseKey);
return;
}
}
}
}
}
}
private static void execute(AsyncPlayerChatEvent e, Player player, ResponsesObject response, String responseKey) {
if (response.protectionGameModeEnable) {
if (response.protectionGameModeMode.equalsIgnoreCase("blacklist") && response.protectionGameModeList.contains(player.getGameMode().toString())) {
return;
}
if (response.protectionGameModeMode.equalsIgnoreCase("whitelist") && !response.protectionGameModeList.contains(player.getGameMode().toString())) {
return;
}
}
if (response.protectionWorldEnable) {
if (response.protectionWorldMode.equalsIgnoreCase("blacklist") && response.protectionWorldList.contains(player.getWorld().getName())) {
return;
}
if (response.protectionWorldMode.equalsIgnoreCase("whitelist") && !response.protectionWorldList.contains(player.getWorld().getName())) {
return;
}
}
use(e, player, responseKey, response);
if (response.commandEnable) {
for (String cmd : response.command) {
if (response.bungeeCommand) {
if (SelectConfig.bungee) {
if (response.commandAsConsole) {
BCommand_Sender_Reciver.sendToBungee(player, cmd.replace("[player]", player.getName()), BungeeSend.BUNGEECOMMAND);
} else BCommand_Sender_Reciver.sendToBungee(player, cmd.replace("[player]", player.getName()), BungeeSend.COMMAND);
} else {
T2Csend.console(Util.getPrefix() + " §4To use bungee commands, enable the Bungee option in the config.");
T2Csend.sender(player, Util.getPrefix() + " §4To use bungee commands, enable the Bungee option in the config.");
}
} else {
if (response.commandAsConsole) {
new BukkitRunnable() {
@Override
public void run() {
T2Ccmd.console(cmd.replace("[player]", player.getName()));
}
}.runTaskLater(Main.getPlugin(), 1L);
} else {
T2Ccmd.player(player, cmd.replace("[player]", player.getName()));
}
}
}
}
if (response.messageEnable) {
for (String msg : response.messages) {
String text;
if (T2CpluginCheck.papi()) {
text = T2Creplace.replace(Util.getPrefix(), player, msg);
} else {
text = T2Creplace.replace(Util.getPrefix(), msg);
}
if (response.messageGlobal) {
if (response.messageGlobalBungee) {
BCommand_Sender_Reciver.sendToBungee(player, text, BungeeSend.ALLPLAYERMSG);
} else {
for (Player player1 : Bukkit.getOnlinePlayers()) {
T2Csend.player(player1, text);
}
}
} else T2Csend.player(player, text);
}
}
}
private static void use(AsyncPlayerChatEvent e, Player player, String responseKey, ResponsesObject response) {
if (response.blockKeyMessage) e.setCancelled(true);
if (SelectConfig.logConsole) T2Csend.console(Util.getPrefix() + " §6Player: §e" + player.getName() + " §6use AutoResponse: §e" + responseKey);
}
}