From e085e3b75b9e0b8d504192f9e11bbab6297bd7a4 Mon Sep 17 00:00:00 2001 From: SamB440 Date: Fri, 4 Nov 2022 15:28:34 +0000 Subject: [PATCH] Fix order of level requirement check --- .../rpgregions/api/integrations/IntegrationManager.java | 6 ++++-- .../rpgregions/requirements/LevelRequirement.java | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/api/src/main/java/net/islandearth/rpgregions/api/integrations/IntegrationManager.java b/api/src/main/java/net/islandearth/rpgregions/api/integrations/IntegrationManager.java index b3dd4ed..f18afed 100644 --- a/api/src/main/java/net/islandearth/rpgregions/api/integrations/IntegrationManager.java +++ b/api/src/main/java/net/islandearth/rpgregions/api/integrations/IntegrationManager.java @@ -67,8 +67,10 @@ public interface IntegrationManager { Optional configuredRegion = plugin.getManagers().getRegionsCache().getConfiguredRegion(region); if (configuredRegion.isEmpty()) return false; if (configuredRegion.get().getRequirements() != null) { + boolean hasBypass = player.hasPermission("rpgregions.bypassentry"); + if (hasBypass) plugin.debug("Player has bypass permission"); for (RegionRequirement requirement : configuredRegion.get().getRequirements()) { - boolean flag = !requirement.meetsRequirements(player) && !player.hasPermission("rpgregions.bypassentry"); + boolean flag = !requirement.meetsRequirements(player) && !hasBypass; if (requirement instanceof DependencyRequirement dependencyRequirement) { List discoveries = new ArrayList<>(); try { @@ -78,7 +80,7 @@ public interface IntegrationManager { e.printStackTrace(); } - flag = !player.hasPermission("rpgregions.bypassentry") && !dependencyRequirement.meetsRequirements(discoveries); + flag = !hasBypass && !dependencyRequirement.meetsRequirements(discoveries); } if (flag) { diff --git a/rpgregions/src/main/java/net/islandearth/rpgregions/requirements/LevelRequirement.java b/rpgregions/src/main/java/net/islandearth/rpgregions/requirements/LevelRequirement.java index 929089d..bd72a09 100644 --- a/rpgregions/src/main/java/net/islandearth/rpgregions/requirements/LevelRequirement.java +++ b/rpgregions/src/main/java/net/islandearth/rpgregions/requirements/LevelRequirement.java @@ -25,7 +25,7 @@ public class LevelRequirement extends RegionRequirement { @Override public boolean meetsRequirements(Player player) { - return player.getLevel() >= level && maxLevel == -1 || player.getLevel() < maxLevel; + return player.getLevel() >= level && (maxLevel == -1 || player.getLevel() < maxLevel); } @Override