package net.t2code.autoresponse.Spigot.event; import net.md_5.bungee.api.chat.ClickEvent; import net.t2code.autoresponse.Util; 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.Main; import net.t2code.lib.Spigot.Lib.commands.Cmd; import net.t2code.lib.Spigot.Lib.messages.TextBuilder; import net.t2code.lib.Spigot.Lib.messages.send; import net.t2code.lib.Spigot.Lib.plugins.PluginCheck; import net.t2code.lib.Spigot.Lib.replace.Replace; 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) { if (player.hasPermission(response.permission)) { send.debugmsg(Main.plugin, "key: " + response.responseKey); if (response.contains) { send.debugmsg(Main.plugin, "1"); if (e.getMessage().contains(response.responseKey)) { send.debugmsg(Main.plugin, "2"); execute(e, player, response); return; } } else { send.debugmsg(Main.plugin, "3"); if (e.getMessage().equals(response.responseKey)) { send.debugmsg(Main.plugin, "4"); execute(e, player, response); return; } } } } } } private static void execute(AsyncPlayerChatEvent e, Player player, ResponsesObject response) { if (response.commandEnable) { for (String cmd : response.command) { if (response.bungeeCommand) { if (SelectConfig.bungee) { BCommand_Sender_Reciver.sendToBungee(player, cmd.replace("[player]", player.getName()), response.commandAsConsole); } else { send.console(Util.getPrefix() + " §4To use bungee commands, enable the Bungee option in the config."); send.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() { Cmd.console(cmd.replace("[player]", player.getName())); } }.runTaskLater(Main.plugin, 1L); } else { Cmd.player(player, cmd.replace("[player]", player.getName())); } } use(e, player, response); } } if (response.messageEnable) { for (String msg : response.messages) { String text; String hover; if (PluginCheck.papi()) { text = Replace.replace(Util.getPrefix(), player, msg); hover = Replace.replace(Util.getPrefix(), player, response.hover); } else { text = Replace.replace(Util.getPrefix(), msg); hover = Replace.replace(Util.getPrefix(), response.hover); } if (response.textBuilder) { TextBuilder textBuilder = new TextBuilder(text); textBuilder.addHover(hover); if (response.clickEvent) { textBuilder.addClickEvent(ClickEvent.Action.valueOf(response.action), response.actionValue); } player.spigot().sendMessage(textBuilder.build()); } else { send.player(player, text); } use(e, player, response); } } } private static void use(AsyncPlayerChatEvent e, Player player, ResponsesObject response) { e.setCancelled(true); if (SelectConfig.logConsole) send.console(Util.getPrefix() + " §6Player: §e" + player.getName() + " §6use AutoResponse: §e" + response.responseKey); } }