162 lines
9.2 KiB
Java
162 lines
9.2 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.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;
|
|
}
|
|
}
|
|
}
|