diff --git a/OpSecurity V3/pom.xml b/OpSecurity V3/pom.xml index a847f3c..49a6a7d 100644 --- a/OpSecurity V3/pom.xml +++ b/OpSecurity V3/pom.xml @@ -6,7 +6,7 @@ net.t2code T2C-OPSecurity - 3.0.7 + 3.1.0 jar diff --git a/OpSecurity V3/src/main/java/net/t2code/opsecurity/API/T2COpSecAPI.java b/OpSecurity V3/src/main/java/net/t2code/opsecurity/API/T2COpSecAPI.java new file mode 100644 index 0000000..d6a89a7 --- /dev/null +++ b/OpSecurity V3/src/main/java/net/t2code/opsecurity/API/T2COpSecAPI.java @@ -0,0 +1,60 @@ +package net.t2code.opsecurity.API; + +import net.t2code.opsecurity.check.OpCheck; +import net.t2code.opsecurity.check.PermissionCheck; +import net.t2code.opsecurity.config.config.Config; +import net.t2code.opsecurity.config.opWhitelist.OPWhitelist; +import net.t2code.opsecurity.config.permissionWhitelist.PermissionWhitelist; +import net.t2code.opsecurity.objects.PlayerCache; +import net.t2code.opsecurity.objects.PlayerObject; +import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend; +import org.bukkit.entity.Player; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public class T2COpSecAPI { + public static boolean checkOPWhiteList(Player player) { + if (!OPWhitelist.enable.valueBoolean) return true; + return OpCheck.opWhitelist(player); + } + + public static boolean checkPermissionWhiteList(Player player) { + if (!PermissionWhitelist.enable.valueBoolean) return true; + return PermissionCheck.permWhitelist(player); + } + + public static T2COpSecAPIPlayerStatus detailCheckOPWhiteList(Player player) { + if (!OPWhitelist.enable.valueBoolean) return T2COpSecAPIPlayerStatus.playerOnOpWhitelist; + List nameList = new ArrayList<>(); + List uuidList = new ArrayList<>(); + for (Map.Entry playerObject : PlayerCache.getOpHashMap().entrySet()) { + nameList.add(playerObject.getValue().playerName); + uuidList.add(playerObject.getValue().uuid); + } + if (!nameList.contains(player.getName())) { + return T2COpSecAPIPlayerStatus.playerNameNotOnTheOpWhitelist; + } + if (!uuidList.contains(player.getUniqueId().toString().replace("-", ""))) { + return T2COpSecAPIPlayerStatus.playerUuidNotOnTheOpWhitelist; + } + return T2COpSecAPIPlayerStatus.playerOnOpWhitelist; + } + public static T2COpSecAPIPlayerStatus detailCheckPermissionWhiteList(Player player) { + if (!PermissionWhitelist.enable.valueBoolean) return T2COpSecAPIPlayerStatus.playerOnPermissionWhitelist; + List nameList = new ArrayList<>(); + List uuidList = new ArrayList<>(); + for (Map.Entry playerObject : PlayerCache.getPermissionHashMap().entrySet()) { + nameList.add(playerObject.getValue().playerName); + uuidList.add(playerObject.getValue().uuid); + } + if (!nameList.contains(player.getName())) { + return T2COpSecAPIPlayerStatus.playerNameNotOnThePermissionWhitelist; + } + if (!uuidList.contains(player.getUniqueId().toString().replace("-", ""))) { + return T2COpSecAPIPlayerStatus.playerUuidNotOnThePermissionWhitelist; + } + return T2COpSecAPIPlayerStatus.playerOnPermissionWhitelist; + } +} diff --git a/OpSecurity V3/src/main/java/net/t2code/opsecurity/API/T2COpSecAPIPlayerStatus.java b/OpSecurity V3/src/main/java/net/t2code/opsecurity/API/T2COpSecAPIPlayerStatus.java new file mode 100644 index 0000000..430b12d --- /dev/null +++ b/OpSecurity V3/src/main/java/net/t2code/opsecurity/API/T2COpSecAPIPlayerStatus.java @@ -0,0 +1,10 @@ +package net.t2code.opsecurity.API; + +public enum T2COpSecAPIPlayerStatus { + playerOnOpWhitelist, + playerNameNotOnTheOpWhitelist, + playerUuidNotOnTheOpWhitelist, + playerOnPermissionWhitelist, + playerNameNotOnThePermissionWhitelist, + playerUuidNotOnThePermissionWhitelist +} diff --git a/OpSecurity V3/src/main/java/net/t2code/opsecurity/check/PermissionCheck.java b/OpSecurity V3/src/main/java/net/t2code/opsecurity/check/PermissionCheck.java index f8a3aa1..d28a2b4 100644 --- a/OpSecurity V3/src/main/java/net/t2code/opsecurity/check/PermissionCheck.java +++ b/OpSecurity V3/src/main/java/net/t2code/opsecurity/check/PermissionCheck.java @@ -54,7 +54,7 @@ public class PermissionCheck { } } - private static Boolean permWhitelist(Player player) { + public static Boolean permWhitelist(Player player) { for (Map.Entry playerObject : PlayerCache.getPermissionHashMap().entrySet()) { T2Csend.debug(Main.getPlugin(), "--------- " + player.getName());