106 lines
6.5 KiB
Java
106 lines
6.5 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.opWhitelist.OPWhitelist;
|
|
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.opsecurity.system.Main;
|
|
import net.t2code.t2codelib.SPIGOT.api.commands.T2Ccmd;
|
|
import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.entity.Player;
|
|
|
|
import java.util.Map;
|
|
|
|
public class OpCheck {
|
|
public static Boolean onCheck(Player player, Boolean join) {
|
|
if (!OPWhitelist.enable.valueBoolean) return false;
|
|
if (!player.isOp()) return false;
|
|
if (opWhitelist(player)) return false;
|
|
if (join) T2Csend.console(Language.opWhitelistNotifyOnJoin.value.replace("[player]", player.getName()).replace("[uuid]", String.valueOf(player.getUniqueId())));
|
|
Bukkit.getScheduler().runTask(Main.getPlugin(), new Runnable() {
|
|
@Override
|
|
public void run() {
|
|
execute(player, join);
|
|
}
|
|
});
|
|
return true;
|
|
}
|
|
|
|
private static void execute(Player player, Boolean join) {
|
|
if (Config.notifyJoinWarning.valueBoolean && join) {
|
|
if (Config.notifyBungee.valueBoolean) {
|
|
BungeeSenderReceiver.sendToBungee(Language.opWhitelistNotifyOnJoin.value.replace("[player]", player.getName()).replace("[uuid]", String.valueOf(player.getUniqueId())));
|
|
} else Events.notifyPlayer(Language.opWhitelistNotifyOnJoin.value.replace("[player]", player.getName()).replace("[uuid]", String.valueOf(player.getUniqueId())));
|
|
}
|
|
|
|
if (OPWhitelist.noOpPlayerSetGameModeEnable.valueBoolean) {
|
|
player.setGameMode(OPWhitelist.noOpPlayerSetGameModeValue.valueGameMode);
|
|
}
|
|
|
|
if (OPWhitelist.noOpPlayerDeopEnable.valueBoolean) {
|
|
player.setOp(false);
|
|
if (OPWhitelist.noOpPlayerKickEnable.valueBoolean) {
|
|
if (!OPWhitelist.customCommandsEnable.valueBoolean) {
|
|
if (Config.kickCustomCommand.valueBoolean) {
|
|
T2Ccmd.console(Config.kickCommand.valueString.replace("[player]", player.getName()).replace("[reason]",
|
|
OPWhitelist.noOpPlayerKickEnable.valueBoolean && OPWhitelist.noOpPlayerDeopEnable.valueBoolean && OPWhitelist.noOpPlayerDeopPlayerSendMessage.valueBoolean
|
|
? Language.opWhitelistKick.value + "<br> <br>" + Language.opWhitelistDeop.value : Language.opWhitelistKick.value));
|
|
} else player.kickPlayer(OPWhitelist.noOpPlayerDeopEnable.valueBoolean && OPWhitelist.noOpPlayerDeopPlayerSendMessage.valueBoolean
|
|
? Language.opWhitelistKick.value + "\n \n" + Language.opWhitelistDeop.value : Language.opWhitelistKick.value);
|
|
}
|
|
T2Csend.console(Language.opWhitelistNotifyDeop.value.replace("[player]", player.getName().replace("[uuid]", String.valueOf(player.getUniqueId()))) + "<br>"
|
|
+ Language.opWhitelistNotifyKick.value.replace("[player]", player.getName().replace("[uuid]", String.valueOf(player.getUniqueId()))).replace("[uuid]", String.valueOf(player.getUniqueId())));
|
|
Events.notifyPlayer(Language.opWhitelistNotifyDeop.value.replace("[player]", player.getName()) + "<br>"
|
|
+ Language.opWhitelistNotifyKick.value.replace("[player]", player.getName()).replace("[uuid]", String.valueOf(player.getUniqueId())));
|
|
} else {
|
|
T2Csend.console(Language.opWhitelistNotifyDeop.value.replace("[player]", player.getName()).replace("[uuid]", String.valueOf(player.getUniqueId())));
|
|
Events.notifyPlayer(Language.opWhitelistNotifyDeop.value.replace("[player]", player.getName()).replace("[uuid]", String.valueOf(player.getUniqueId())));
|
|
|
|
if (OPWhitelist.noOpPlayerDeopPlayerSendMessage.valueBoolean) {
|
|
Bukkit.getScheduler().runTaskLater(Main.getPlugin(), new Runnable() {
|
|
@Override
|
|
public void run() {
|
|
T2Csend.player(player, Language.opWhitelistDeop.value);
|
|
}
|
|
}, 5L);
|
|
}
|
|
}
|
|
}
|
|
if (OPWhitelist.noOpPlayerKickEnable.valueBoolean) {
|
|
if (!OPWhitelist.noOpPlayerDeopEnable.valueBoolean) {
|
|
if (!OPWhitelist.customCommandsEnable.valueBoolean) {
|
|
if (Config.kickCustomCommand.valueBoolean) {
|
|
T2Ccmd.console(Config.kickCommand.valueString.replace("[player]", player.getName()).replace("[reason]", Language.opWhitelistKick.value));
|
|
} else player.kickPlayer(Language.opWhitelistKick.value);
|
|
}
|
|
T2Csend.console(Language.opWhitelistNotifyKick.value.replace("[player]", player.getName()).replace("[uuid]", String.valueOf(player.getUniqueId())));
|
|
Events.notifyPlayer(Language.opWhitelistNotifyKick.value.replace("[player]", player.getName()).replace("[uuid]", String.valueOf(player.getUniqueId())));
|
|
}
|
|
}
|
|
if (OPWhitelist.customCommandsEnable.valueBoolean) {
|
|
for (String cmd : OPWhitelist.customCommandsCommands.valueStringList) {
|
|
T2Ccmd.console(cmd.replace("[player]", player.getName()));
|
|
}
|
|
}
|
|
}
|
|
|
|
public static Boolean opWhitelist(Player player) {
|
|
for (Map.Entry<String, PlayerObject> playerObject : PlayerCash.getOpHashMap().entrySet()) {
|
|
T2Csend.debug(Main.getPlugin(), "--------- " + player.getName());
|
|
T2Csend.debug(Main.getPlugin(), "opWhitelist playerObject Name: " + playerObject.getValue().playerName);
|
|
T2Csend.debug(Main.getPlugin(), "opWhitelist Player Name: " + player.getName());
|
|
T2Csend.debug(Main.getPlugin(), "opWhitelist playerObject UUID: " + playerObject.getValue().uuid);
|
|
T2Csend.debug(Main.getPlugin(), "opWhitelist 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(), "opWhitelist Player on list!");
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
}
|