// This claas was created by JaTiTV package de.jatitv.opsecurity.listener; 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 de.jatitv.opsecurity.util.Replace; import de.jatitv.opsecurity.util.send; 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 { private int isNotOPWTL(String command) { if (command.charAt(0) == '/') command = command.replaceFirst("/", ""); String arg = command.replace("op ", ""); String targetUUID = null; if (SelectConfig.PlayerMustBeOnlineToOp) { if (Main.opHashMap.containsKey(arg)) { Player target = Bukkit.getPlayer(arg); if (target == null) { return 1; } if (Main.opHashMap.get(target.getName()).UUID.equals(target.getUniqueId().toString().replace("-", ""))) { return 0; } else return 2; } else return 2; } else { if (Main.opHashMap.containsKey(arg)) { try { targetUUID = NameHistory.getPlayerUUID(arg); } catch (IOException e) { e.printStackTrace(); } if (Main.opHashMap.get(arg).UUID.equals(targetUUID)) { return 0; } else return 2; } else return 2; } } @EventHandler public void onOPServer(ServerCommandEvent event) { if ((event.getCommand().toLowerCase().startsWith("op ") || event.getCommand().toLowerCase().startsWith("minecraft:op ")) && SelectConfig.OP_Whitelist_Enable) { switch (this.isNotOPWTL(event.getCommand())) { case 1: send.sender(event.getSender(), Main.Prefix + " " + SelectMessages.PlayerMustBeOnlineToOp); event.setCancelled(true); break; case 2: send.sender(event.getSender(), (Replace.replace(Main.Prefix + " " + SelectMessages.OP_opCommand))); event.setCancelled(true); break; } } } @EventHandler public void onOpPlayer(PlayerCommandPreprocessEvent event) { if (SelectConfig.OP_Whitelist_Enable){ if ((event.getMessage().toLowerCase().startsWith("/op ") || event.getMessage().toLowerCase().startsWith("/minecraft:op "))) { switch (this.isNotOPWTL(event.getMessage())) { case 1: send.sender(event.getPlayer(), Main.Prefix + " " + SelectMessages.PlayerMustBeOnlineToOp); event.setCancelled(true); break; case 2: send.player(event.getPlayer(), Replace.replace( Main.Prefix + " " + SelectMessages.OP_opCommand)); event.setCancelled(true); break; } } } } }