2022-11-03 18:15:07 +00:00
|
|
|
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;
|
2022-11-09 22:20:25 +00:00
|
|
|
import net.t2code.opsecurity.system.Main;
|
2022-11-03 18:15:07 +00:00
|
|
|
import net.t2code.t2codelib.SPIGOT.api.commands.T2Ccmd;
|
|
|
|
import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
|
2022-11-09 22:20:25 +00:00
|
|
|
import org.bukkit.Bukkit;
|
2022-11-03 18:15:07 +00:00
|
|
|
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) {
|
2022-11-20 19:17:55 +00:00
|
|
|
if (!player.hasPermission(perm)) return false;
|
|
|
|
if (permWhitelist(player)) return false;
|
2022-11-09 22:20:25 +00:00
|
|
|
Bukkit.getScheduler().runTask(Main.getPlugin(), new Runnable() {
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
execute(player, join, perm);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
2022-11-03 18:15:07 +00:00
|
|
|
|
2022-11-09 22:20:25 +00:00
|
|
|
private static void execute(Player player, Boolean join, String perm) {
|
|
|
|
if (join) T2Csend.console(Language.permissionWhitelistNotifyKick.value.replace("[player]", player.getName()).replace("[uuid]",String.valueOf(player.getUniqueId())));
|
|
|
|
if (Config.notifyJoinWarning.valueBoolean && join) {
|
|
|
|
if (Config.notifyBungee.valueBoolean) {
|
|
|
|
BungeeSenderReceiver.sendToBungee(Language.permissionWhitelistNotifyOnJoin.value.replace("[player]", player.getName()).replace("[uuid]",String.valueOf(player.getUniqueId())));
|
|
|
|
} else Events.notifyPlayer(Language.permissionWhitelistNotifyOnJoin.value.replace("[player]", player.getName()).replace("[uuid]",String.valueOf(player.getUniqueId())));
|
|
|
|
}
|
2022-11-03 18:15:07 +00:00
|
|
|
|
2022-11-09 22:20:25 +00:00
|
|
|
if (PermissionWhitelist.playerWithPermissionKick.valueBoolean) {
|
|
|
|
if (Config.kickCustomCommand.valueBoolean) {
|
2022-11-20 19:17:55 +00:00
|
|
|
T2Ccmd.console(Config.kickCommand.valueString.replace("[perm]", perm).replace("[player]", player.getName()).replace("[reason]", Language.permissionWhitelistKick.value));
|
2022-11-09 22:20:25 +00:00
|
|
|
} else player.kickPlayer(Language.permissionWhitelistKick.value);
|
|
|
|
T2Csend.console(Language.permissionWhitelistNotifyKick.value.replace("[player]",
|
|
|
|
player.getName()).replace("[perm]", perm).replace("[uuid]",String.valueOf(player.getUniqueId())));
|
|
|
|
}
|
2022-11-17 20:07:15 +00:00
|
|
|
if (PermissionWhitelist.customCommandsEnable.valueBoolean) {
|
2022-11-09 22:20:25 +00:00
|
|
|
for (String cmd : PermissionWhitelist.customCommandsCommands.valueStringList) {
|
|
|
|
T2Ccmd.console(cmd.replace("[player]", player.getName()).replace("[perm]", perm));
|
2022-11-03 18:15:07 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private static Boolean permWhitelist(Player player) {
|
2022-11-20 19:17:55 +00:00
|
|
|
|
2022-11-09 22:20:25 +00:00
|
|
|
for (Map.Entry<String, PlayerObject> playerObject : PlayerCash.getPermissionHashMap().entrySet()) {
|
2022-11-20 19:17:55 +00:00
|
|
|
T2Csend.debug(Main.getPlugin(), "--------- " + player.getName());
|
|
|
|
T2Csend.debug(Main.getPlugin(),"permWhitelist playerObject Name: "+playerObject.getValue().playerName );
|
|
|
|
T2Csend.debug(Main.getPlugin(),"permWhitelist Player Name: "+player.getName() );
|
|
|
|
T2Csend.debug(Main.getPlugin(),"permWhitelist playerObject UUID: "+playerObject.getValue().uuid );
|
|
|
|
T2Csend.debug(Main.getPlugin(),"permWhitelist Player UUID: "+player.getUniqueId().toString().replace("-","") );
|
|
|
|
if (playerObject.getValue().playerName.equals(player.getName()) && playerObject.getValue().uuid.equals(player.getUniqueId().toString().replace("-",""))){
|
|
|
|
T2Csend.debug(Main.getPlugin(),"permWhitelist Player on list!");
|
|
|
|
return true;
|
|
|
|
}
|
2022-11-03 18:15:07 +00:00
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|