// This claas was created by JaTiTV package de.jatitv.opsecurity.listener; import de.jatitv.opsecurity.Util; import de.jatitv.opsecurity.config.languages.SelectMessages; import de.jatitv.opsecurity.config.config.SelectConfig; import de.jatitv.opsecurity.system.Main; import de.jatitv.opsecurity.system.NameHistory; import net.t2code.t2codelib.SPIGOT.api.messages.T2Creplace; import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import java.io.IOException; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerCommandPreprocessEvent; import org.bukkit.event.server.ServerCommandEvent; public class OPCommand implements Listener { @EventHandler public void onOPServer(ServerCommandEvent event) { if ((event.getCommand().toLowerCase().startsWith("op ") || event.getCommand().toLowerCase().startsWith("minecraft:op ")) && SelectConfig.opWhitelistEnable) { switch (this.isNotOPWTL(event.getCommand())) { case 1: T2Csend.sender(event.getSender(), Util.getPrefix() + " " + SelectMessages.PlayerMustBeOnlineToOp); event.setCancelled(true); break; case 2: T2Csend.sender(event.getSender(), (T2Creplace.replace(Util.getPrefix(), Util.getPrefix() + " " + SelectMessages.OP_opCommand))); event.setCancelled(true); break; } } } @EventHandler public void onOpPlayer(PlayerCommandPreprocessEvent event) { if (SelectConfig.opWhitelistEnable) { if ((event.getMessage().toLowerCase().startsWith("/op ") || event.getMessage().toLowerCase().startsWith("/minecraft:op "))) { switch (this.isNotOPWTL(event.getMessage())) { case 1: T2Csend.sender(event.getPlayer(), Util.getPrefix() + " " + SelectMessages.PlayerMustBeOnlineToOp); event.setCancelled(true); break; case 2: T2Csend.player(event.getPlayer(), T2Creplace.replace(Util.getPrefix(), Util.getPrefix() + " " + SelectMessages.OP_opCommand)); event.setCancelled(true); break; } } } } private int isNotOPWTL(String command) { if (!command.contains("op")) return 0; if (command.charAt(0) == '/') command = command.replaceFirst("/", ""); String arg = command.replace("op ", ""); if (SelectConfig.playerMustBeOnlineToOp) { if (Main.getOpHashMap().containsKey(arg.toLowerCase())) { Player target = Bukkit.getPlayer(arg); if (target == null) { return 1; } if (Main.getOpHashMap().get(target.getName().toLowerCase()).UUID.equals(target.getUniqueId().toString().replace("-", ""))) { return 0; } else return 2; } else return 2; } else { if (Main.getOpHashMap().containsKey(arg.toLowerCase())) { String targetUUID = null; try { targetUUID = NameHistory.getPlayerUUID(arg); } catch (IOException e) { e.printStackTrace(); } if (Main.getOpHashMap().get(arg.toLowerCase()).UUID.equals(targetUUID)) { return 0; } else return 2; } else return 2; } } }