diff --git a/legacy/src/main/java/net/islandearth/rpgregions/api/integrations/worldguard/WorldGuardLegacyIntegration.java b/legacy/src/main/java/net/islandearth/rpgregions/api/integrations/worldguard/WorldGuardLegacyIntegration.java index 2134dfd..21e51ba 100644 --- a/legacy/src/main/java/net/islandearth/rpgregions/api/integrations/worldguard/WorldGuardLegacyIntegration.java +++ b/legacy/src/main/java/net/islandearth/rpgregions/api/integrations/worldguard/WorldGuardLegacyIntegration.java @@ -6,14 +6,14 @@ import net.islandearth.rpgregions.api.IRPGRegionsAPI; import net.islandearth.rpgregions.api.events.RegionsEnterEvent; import net.islandearth.rpgregions.api.integrations.IntegrationManager; import net.islandearth.rpgregions.managers.data.region.ConfiguredRegion; -import net.islandearth.rpgregions.requirements.RegionRequirement; -import net.islandearth.rpgregions.translation.Translations; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.entity.Player; import org.bukkit.event.player.PlayerMoveEvent; +import java.util.ArrayList; +import java.util.List; import java.util.Set; public class WorldGuardLegacyIntegration implements IntegrationManager { @@ -41,20 +41,16 @@ public class WorldGuardLegacyIntegration implements IntegrationManager { Set oldRegions = this.getProtectedRegions(new Location(player.getWorld(), oldX, oldY, oldZ)); Set regions = this.getProtectedRegions(new Location(player.getWorld(), x, y, z)); + String prioritisedRegion = getPrioritisedRegion(pme.getTo()).getId(); + if (prioritisedRegion == null) return; + List stringRegions = new ArrayList<>(); regions.forEach(region -> { - ConfiguredRegion configuredRegion = plugin.getManagers().getRegionsCache().getConfiguredRegion(region.getId()); - if (configuredRegion != null && configuredRegion.getRequirements() != null) { - for (RegionRequirement requirement : configuredRegion.getRequirements()) { - if (!player.hasPermission("rpgregions.bypassentry") && !requirement.meetsRequirements(player)) { - requirement.getPreventType().prevent(pme); - Translations.CANNOT_ENTER.send(player, requirement.getText(player)); - return; - } - } - } + if (!prioritisedRegion.equals(region.getId()) + && checkRequirements(pme, region.getId())) stringRegions.add(region.getId()); }); - ConfiguredRegion prioritisedRegion = getPrioritisedRegion(pme.getTo()); - Bukkit.getPluginManager().callEvent(new RegionsEnterEvent(player, prioritisedRegion.getId(), !oldRegions.equals(regions))); + + stringRegions.add(0, getPrioritisedRegion(pme.getTo()).getId()); + Bukkit.getPluginManager().callEvent(new RegionsEnterEvent(player, stringRegions, !oldRegions.equals(regions))); } @Override diff --git a/modern/src/main/java/net/islandearth/rpgregions/api/integrations/worldguard/WorldGuardIntegration.java b/modern/src/main/java/net/islandearth/rpgregions/api/integrations/worldguard/WorldGuardIntegration.java index ecdf375..ec786f0 100644 --- a/modern/src/main/java/net/islandearth/rpgregions/api/integrations/worldguard/WorldGuardIntegration.java +++ b/modern/src/main/java/net/islandearth/rpgregions/api/integrations/worldguard/WorldGuardIntegration.java @@ -45,6 +45,7 @@ public class WorldGuardIntegration implements IntegrationManager { Set regions = this.getProtectedRegions(new Location(player.getWorld(), x, y, z)); String prioritisedRegion = getPrioritisedRegion(pme.getTo()).getId(); + if (prioritisedRegion == null) return; List stringRegions = new ArrayList<>(); regions.forEach(region -> { if (!prioritisedRegion.equals(region.getId())