54 lines
2.8 KiB
Java
54 lines
2.8 KiB
Java
package net.t2code.opsecurity.check;
|
|
|
|
import net.t2code.opsecurity.config.config.Config;
|
|
import net.t2code.opsecurity.config.language.Language;
|
|
import net.t2code.opsecurity.config.permissionWhitelist.PermissionWhitelist;
|
|
import net.t2code.opsecurity.events.Events;
|
|
import net.t2code.opsecurity.objects.PlayerCash;
|
|
import net.t2code.opsecurity.objects.PlayerObject;
|
|
import net.t2code.opsecurity.system.BungeeSenderReceiver;
|
|
import net.t2code.t2codelib.SPIGOT.api.commands.T2Ccmd;
|
|
import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
|
|
import org.bukkit.entity.Player;
|
|
|
|
import java.util.Map;
|
|
|
|
public class PermissionCheck {
|
|
public static Boolean onCheck(Player player, Boolean join) {
|
|
if (!PermissionWhitelist.enable.valueBoolean) return false;
|
|
for (String perm : PermissionWhitelist.permissions.valueStringList) {
|
|
if (!player.hasPermission(perm)) continue;
|
|
if (permWhitelist(player)) continue;
|
|
|
|
if (join) T2Csend.console(Language.permissionWhitelistNotifyKick.value.replace("[player]", player.getName()));
|
|
if (Config.notifyJoinWarning.valueBoolean && join) {
|
|
if (Config.notifyBungee.valueBoolean) {
|
|
BungeeSenderReceiver.sendToBungee(Language.permissionWhitelistNotifyOnJoin.value.replace("[player]", player.getName()));
|
|
} else Events.notifyPlayer(Language.permissionWhitelistNotifyOnJoin.value.replace("[player]", player.getName()));
|
|
}
|
|
|
|
if (PermissionWhitelist.playerWithPermissionKick.valueBoolean) {
|
|
T2Ccmd.console(Config.kickCommand.valueString.replace("[player]", player.getName()).replace("[reason]", Language.permissionWhitelistKick.value));
|
|
T2Csend.console(Language.permissionWhitelistNotifyKick.value.replace("[player]",
|
|
player.getName()).replace("[perm]", perm));
|
|
}
|
|
if (PermissionWhitelist.customCommandsCommands.valueBoolean) {
|
|
for (String cmd : PermissionWhitelist.customCommandsCommands.valueStringList) {
|
|
T2Ccmd.console(cmd.replace("[player]", player.getName()).replace("[perm]", perm));
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
private static Boolean permWhitelist(Player player) {
|
|
for (Map.Entry<String, PlayerObject> playerObject : PlayerCash.getPermissionHashMap().entrySet()){
|
|
if (playerObject.getValue().playerName.equals(player.getName())) return true;
|
|
if (playerObject.getValue().uuid.equals(player.getUniqueId().toString())) return true;
|
|
}
|
|
T2Csend.console(Language.exactKickReason.value.replace("[reason]", "Player UUID: " + player.getUniqueId().toString() + " not whitelisted (permissionWhitelist)"));
|
|
return false;
|
|
}
|
|
}
|