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.Permissions; 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 org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; public class Check { public static Boolean onCheck(Player player, Boolean join) { if (SelectConfig.opWhitelistEnable) { if (player.isOp()) { if (opWhitelist(player)) { return false; } if (join) { T2Csend.console(T2Creplace.replace(Util.getPrefix(), SelectMessages.OP_consoleOnJoin.replace("[player]", player.getName()))); } if (SelectConfig.notifyWarn) { for (Player notifyperm : Bukkit.getOnlinePlayers()) { if (notifyperm.hasPermission(Permissions.notify)) { if (join) { notifyperm.sendMessage(T2Creplace.replace(Util.getPrefix(), SelectMessages.OP_consoleOnJoin.replace("[player]", player.getName()))); } else notifyperm.sendMessage(T2Creplace.replace(Util.getPrefix(), SelectMessages.OP_consoleKick.replace("[player]", player.getName()))); if (SelectConfig.notifySoundEnable) { notifyperm.playSound(player.getLocation(), SelectConfig.notifySound, 3, 1); } } } } if (SelectConfig.noOpPlayerKick && SelectConfig.noOPPlayerDeop) { player.setOp(false); T2Ccmd.console(SelectConfig.kickCommand.replace("[player]", player.getName()) .replace("[reason]", T2Creplace.replace(Util.getPrefix(), SelectMessages.OP_kick + "\n" + "\n" + SelectMessages.OP_deop))); T2Csend.console(T2Creplace.replace(Util.getPrefix(), SelectMessages.OP_consoleKick.replace("[player]", player.getName()))); } else { if (SelectConfig.noOpPlayerKick) { T2Ccmd.console(SelectConfig.kickCommand.replace("[player]", player.getName()).replace("[reason]", T2Creplace.replace(Util.getPrefix(), SelectMessages.OP_kick))); T2Csend.console(T2Creplace.replace(Util.getPrefix(), SelectMessages.OP_consoleKick.replace("[player]", player.getName()))); for (Player notifyperm : Bukkit.getOnlinePlayers()) { if (notifyperm.hasPermission(Permissions.notify)) { notifyperm.sendMessage(T2Creplace.replace(Util.getPrefix(), SelectMessages.OP_consoleKick.replace("[player]", player.getName()) + "\n" + SelectMessages.OP_consoleDeop.replace("[player]", player.getName()))); } } } if (SelectConfig.noOPPlayerDeop) { player.setOp(false); if (SelectConfig.sendPlayerDEOPmsg) { new BukkitRunnable() { @Override public void run() { player.sendMessage(T2Creplace.replace(Util.getPrefix(), SelectMessages.OP_deop)); } }.runTaskLater(Main.getPlugin(), 5L); } T2Csend.console(T2Creplace.replace(Util.getPrefix(), SelectMessages.OP_consoleDeop.replace("[player]", player.getName()))); for (Player notifyperm : Bukkit.getOnlinePlayers()) { if (notifyperm.hasPermission(Permissions.notify)) { notifyperm.sendMessage(T2Creplace.replace(Util.getPrefix(), SelectMessages.OP_consoleDeop.replace("[player]", player.getName()))); } } } } if (SelectConfig.customCommandEnable) { for (String cmd : SelectConfig.customKickCommand) { T2Ccmd.console(T2Creplace.replace(Util.getPrefix(), cmd.replace("[player]", player.getName()))); } } return true; } } if (SelectConfig.permissionWhitelistEnable) { for (String s : SelectConfig.permissions) { if (player.hasPermission(s)) { if (!permWhitelist(player)) { if (join) { T2Csend.console(T2Creplace.replace(Util.getPrefix(), SelectMessages.Perm_consoleOnJoin.replace("[player]", player.getName()).replace("[perm]", s))); } if (SelectConfig.notifyWarn) { for (Player notifyperm : Bukkit.getOnlinePlayers()) { if (notifyperm.hasPermission(Permissions.notify)) { if (join) { notifyperm.sendMessage(T2Creplace.replace(Util.getPrefix(), SelectMessages.Perm_consoleOnJoin.replace("[player]", player.getName()).replace("[perm]", s))); } else notifyperm.sendMessage(T2Creplace.replace(Util.getPrefix(), SelectMessages.Perm_consoleKick.replace("[player]", player.getName()).replace("[perm]", s))); if (SelectConfig.notifySoundEnable) { notifyperm.playSound(player.getLocation(), SelectConfig.notifySound, 3, 1); } } } } if (SelectConfig.playerWhithPermissionKick && SelectConfig.permCommandEnable) { T2Ccmd.console(SelectConfig.kickCommand.replace("[player]", player.getName()).replace("[reason]", T2Creplace.replace(Util.getPrefix(), SelectMessages.Perm_kick))); T2Csend.console(T2Creplace.replace(Util.getPrefix(), SelectMessages.Perm_consoleKick.replace("[player]", player.getName()).replace("[perm]", s))); for (String cmd : SelectConfig.permCommand) { Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), cmd.replace("[player]", player.getName()).replace("[perm]", s)); } } if (SelectConfig.playerWhithPermissionKick) { T2Ccmd.console(SelectConfig.kickCommand.replace("[player]", player.getName()).replace("[reason]", T2Creplace.replace(Util.getPrefix(), SelectMessages.Perm_kick))); T2Csend.console(T2Creplace.replace(Util.getPrefix(), SelectMessages.Perm_consoleKick.replace("[player]", player.getName()).replace("[perm]", s))); } if (SelectConfig.permCommandEnable) { for (String cmd : SelectConfig.permCommand) { T2Ccmd.console(cmd.replace("[player]", player.getName()).replace("[perm]", s)); } } return true; } } } } return false; } private static Boolean opWhitelist(Player player) { if (Main.getOpHashMap().containsKey(player.getName().toLowerCase())) { if (Main.getOpHashMap().get(player.getName().toLowerCase()).UUID.equals(player.getUniqueId().toString().replace("-", ""))) { return true; } else { T2Csend.console(SelectMessages.ExactReason.replace("[reason]", "Player UUID: " + player.getUniqueId().toString() + " not whitelisted")); return false; } } else { T2Csend.console(SelectMessages.ExactReason.replace("[reason]", "Player name: " + player.getName() + " not whitelisted")); return false; } } private static Boolean permWhitelist(Player player) { if (Main.getPermissionHashMap().containsKey(player.getName().toLowerCase())) { if (Main.getPermissionHashMap().get(player.getName().toLowerCase()).UUID.equals(player.getUniqueId().toString().replace("-", ""))) { return true; } else { T2Csend.console(SelectMessages.ExactReason.replace("[reason]", "Player UUID: " + player.getUniqueId().toString() + " not whitelisted")); return false; } } else { T2Csend.console(SelectMessages.ExactReason.replace("[reason]", "Player name: " + player.getName() + " not whitelisted")); return false; } } }