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

154 lines
8.6 KiB
Java

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