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

168 lines
9.5 KiB
Java

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.lib.Spigot.Lib.commands.Cmd;
import net.t2code.lib.Spigot.Lib.messages.send;
import net.t2code.lib.Spigot.Lib.replace.Replace;
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)) {
return false;
}
if (join) {
send.console(Replace.replace(Util.getPrefix(),SelectMessages.OP_consoleOnJoin.replace("[player]", player.getName())));
}
if (SelectConfig.Notify_Warn) {
for (Player notifyperm : Bukkit.getOnlinePlayers()) {
if (notifyperm.hasPermission(Permissions.notify)) {
if (join) {
notifyperm.sendMessage(Replace.replace(Util.getPrefix(),SelectMessages.OP_consoleOnJoin.replace("[player]", player.getName())));
} else notifyperm.sendMessage(Replace.replace(Util.getPrefix(),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(Util.getPrefix(),SelectMessages.OP_kick + "\n" + "\n" + SelectMessages.OP_deop)));
send.console(Replace.replace(Util.getPrefix(),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(Util.getPrefix(),SelectMessages.OP_kick)));
send.console(Replace.replace(Util.getPrefix(),SelectMessages.OP_consoleKick.replace("[player]", player.getName())));
for (Player notifyperm : Bukkit.getOnlinePlayers()) {
if (notifyperm.hasPermission(Permissions.notify)) {
notifyperm.sendMessage(Replace.replace(Util.getPrefix(),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(Util.getPrefix(),SelectMessages.OP_deop));
}
}.runTaskLater(Main.plugin, 5L);
}
send.console(Replace.replace(Util.getPrefix(),SelectMessages.OP_consoleDeop.replace("[player]", player.getName())));
for (Player notifyperm : Bukkit.getOnlinePlayers()) {
if (notifyperm.hasPermission(Permissions.notify)) {
notifyperm.sendMessage(Replace.replace(Util.getPrefix(),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(Util.getPrefix(),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(Util.getPrefix(),SelectMessages.Perm_consoleOnJoin.replace("[player]", player.getName()).replace("[perm]", s)));
}
if (SelectConfig.Notify_Warn) {
for (Player notifyperm : Bukkit.getOnlinePlayers()) {
if (notifyperm.hasPermission(Permissions.notify)) {
if (join) {
notifyperm.sendMessage(Replace.replace(Util.getPrefix(),SelectMessages.Perm_consoleOnJoin.replace("[player]",
player.getName()).replace("[perm]", s)));
} else notifyperm.sendMessage(Replace.replace(Util.getPrefix(),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(Util.getPrefix(),SelectMessages.Perm_kick)));
send.console(Replace.replace(Util.getPrefix(),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(Util.getPrefix(),SelectMessages.Perm_kick)));
send.console(Replace.replace(Util.getPrefix(),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().toLowerCase())) {
if (Main.opHashMap.get(player.getName().toLowerCase()).UUID.equals(player.getUniqueId().toString().replace("-", ""))) {
return true;
} else {
send.console(SelectMessages.ExactReason.replace("[reason]", "Player UUID: " + player.getUniqueId().toString() + " not whitelisted"));
return false;
}
} else {
send.console(SelectMessages.ExactReason.replace("[reason]", "Player name: " + player.getName() + " not whitelisted"));
return false;
}
}
private static Boolean permWhitelist(Player player) {
if (Main.permissionHashMap.containsKey(player.getName().toLowerCase())) {
if (Main.permissionHashMap.get(player.getName().toLowerCase()).UUID.equals(player.getUniqueId().toString().replace("-", ""))) {
return true;
} else {
send.console(SelectMessages.ExactReason.replace("[reason]", "Player UUID: " + player.getUniqueId().toString() + " not whitelisted"));
return false;
}
} else {
send.console(SelectMessages.ExactReason.replace("[reason]", "Player name: " + player.getName() + " not whitelisted"));
return false;
}
}
}