123 lines
5.6 KiB
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);
|
|
}
|
|
}
|