T2C-OPSecurity/src/main/java/de/jatitv/opsecurity/listener/OPCommand.java

89 lines
3.3 KiB
Java

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