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); } }