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.util.Replace; import de.jatitv.opsecurity.util.Cmd; import de.jatitv.opsecurity.util.send; 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.OP_Whitelist_Enable) { if (player.isOp()) { if (!opWhitelist(player)) { if (join) { send.console(Replace.replace(SelectMessages.OP_consoleOnJoin.replace("[player]", player.getName()))); } if (SelectConfig.Notify_Warn) { for (Player notifyperm : Bukkit.getOnlinePlayers()) { if (notifyperm.hasPermission("opsecurity.notify")) { if (join) { notifyperm.sendMessage(Replace.replace(SelectMessages.OP_consoleOnJoin.replace("[player]", player.getName()))); } else notifyperm.sendMessage(Replace.replace(SelectMessages.OP_consoleKick.replace("[player]", player.getName()))); if (SelectConfig.Notify_Sound_Enable) { notifyperm.playSound(player.getLocation(), SelectConfig.Notify_Sound, 3, 1); } } } } if (SelectConfig.no_OP_Player_kick && SelectConfig.no_OP_Player_deop) { player.setOp(false); Cmd.console(SelectConfig.KickCommand.replace("[player]", player.getName()) .replace("[reason]", Replace.replace(SelectMessages.OP_kick + "\n" + "\n" + SelectMessages.OP_deop))); send.console(Replace.replace(SelectMessages.OP_consoleKick.replace("[player]", player.getName()))); return true; } else { if (SelectConfig.no_OP_Player_kick) { Cmd.console(SelectConfig.KickCommand.replace("[player]", player.getName()).replace("[reason]", Replace.replace(SelectMessages.OP_kick))); send.console(Replace.replace(SelectMessages.OP_consoleKick.replace("[player]", player.getName()))); for (Player notifyperm : Bukkit.getOnlinePlayers()) { if (notifyperm.hasPermission("opsecurity.notify")) { notifyperm.sendMessage(Replace.replace(SelectMessages.OP_consoleKick.replace("[player]", player.getName()) + "\n" + SelectMessages.OP_consoleDeop.replace("[player]", player.getName()))); } } return true; } if (SelectConfig.no_OP_Player_deop) { player.setOp(false); if (SelectConfig.sendPlayerDEOPmsg) { new BukkitRunnable() { @Override public void run() { player.sendMessage(Replace.replace(SelectMessages.OP_deop)); } }.runTaskLater(Main.plugin, 5L); } send.console(Replace.replace(SelectMessages.OP_consoleDeop.replace("[player]", player.getName()))); for (Player notifyperm : Bukkit.getOnlinePlayers()) { if (notifyperm.hasPermission("opsecurity.notify")) { notifyperm.sendMessage(Replace.replace(SelectMessages.OP_consoleDeop.replace("[player]", player.getName()))); } } return true; } } if (SelectConfig.customCommand_Enable) { new BukkitRunnable() { @Override public void run() { for (String cmd : SelectConfig.customKickCommand) { Cmd.console(Replace.replace(cmd.replace("[player]", player.getName()))); } } }.runTaskLater(Main.plugin, 5L); return true; } } } } if (SelectConfig.Permission_Whitelist_Enable) { for (String s : SelectConfig.Permissions) { if (player.hasPermission(s)) { if (!permWhitelist(player)) { if (join) { send.console(Replace.replace(SelectMessages.Perm_consoleOnJoin.replace("[player]", player.getName()).replace("[perm]", s))); } if (SelectConfig.Notify_Warn) { for (Player notifyperm : Bukkit.getOnlinePlayers()) { if (notifyperm.hasPermission("opsecurity.notify")) { if (join) { notifyperm.sendMessage(Replace.replace(SelectMessages.Perm_consoleOnJoin.replace("[player]", player.getName()).replace("[perm]", s))); } else notifyperm.sendMessage(Replace.replace(SelectMessages.Perm_consoleKick.replace("[player]", player.getName()).replace("[perm]", s))); if (SelectConfig.Notify_Sound_Enable) { notifyperm.playSound(player.getLocation(), SelectConfig.Notify_Sound, 3, 1); } } } } if (SelectConfig.PlayerWhithPermission_kick && SelectConfig.Perm_Command_enable){ Cmd.console(SelectConfig.KickCommand.replace("[player]", player.getName()).replace("[reason]", Replace.replace(SelectMessages.Perm_kick))); send.console(Replace.replace(SelectMessages.Perm_consoleKick.replace("[player]", player.getName()).replace("[perm]", s))); for (String cmd : SelectConfig.Perm_Command) { Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), cmd.replace("[player]", player.getName()).replace("[perm]", s)); } return true; } if (SelectConfig.PlayerWhithPermission_kick) { Cmd.console( SelectConfig.KickCommand.replace("[player]", player.getName()).replace("[reason]", Replace.replace(SelectMessages.Perm_kick))); send.console(Replace.replace(SelectMessages.Perm_consoleKick.replace("[player]", player.getName()).replace("[perm]", s))); return true; } if (SelectConfig.Perm_Command_enable) { for (String cmd : SelectConfig.Perm_Command) { Cmd.console(cmd.replace("[player]", player.getName()).replace("[perm]", s)); } return true; } return true; } } } } return false; } private static Boolean opWhitelist(Player player) { if (Main.opHashMap.containsKey(player.getName())) { if (Main.opHashMap.get(player.getName()).UUID.equals(player.getUniqueId().toString().replace("-", ""))) { return true; } else return false; } else return false; } private static Boolean permWhitelist(Player player) { if (Main.permissionHashMap.containsKey(player.getName())) { if (Main.permissionHashMap.get(player.getName()).UUID.equals(player.getUniqueId().toString().replace("-",""))) { return true; } else return false; } else return false; } }