From 36e815f9f14c3c47b0f3f4c88b21b8fed07ebea8 Mon Sep 17 00:00:00 2001 From: Esophose Date: Sat, 2 Mar 2019 12:09:16 -0700 Subject: [PATCH] Fix non-island members influencing generator level --- .../me/goodandevil/skyblock/listeners/Block.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/java/me/goodandevil/skyblock/listeners/Block.java b/src/main/java/me/goodandevil/skyblock/listeners/Block.java index 6c072ffc..2289c7bc 100644 --- a/src/main/java/me/goodandevil/skyblock/listeners/Block.java +++ b/src/main/java/me/goodandevil/skyblock/listeners/Block.java @@ -264,10 +264,11 @@ public class Block implements Listener { List generators = new ArrayList<>(generatorManager.getGenerators()); Collections.reverse(generators); // Use the highest generator available - // Filter players on the island + // Filter valid players on the island Set possiblePlayers = new HashSet<>(); for (Player p : Bukkit.getOnlinePlayers()) { - if (LocationUtil.isLocationAtLocationRadius(p.getLocation(), island.getLocation(world, IslandEnvironment.Island), island.getRadius())) { + boolean isMember = island.hasRole(IslandRole.Owner, p.getUniqueId()) || island.hasRole(IslandRole.Member, p.getUniqueId()) || island.hasRole(IslandRole.Coop, p.getUniqueId()); + if (isMember && LocationUtil.isLocationAtLocationRadius(p.getLocation(), island.getLocation(world, IslandEnvironment.Island), island.getRadius())) { possiblePlayers.add(p); } } @@ -435,13 +436,14 @@ public class Block implements Listener { List generators = new ArrayList<>(generatorManager.getGenerators()); Collections.reverse(generators); // Use the highest generator available - // Filter players on the island + // Filter valid players on the island Set possiblePlayers = new HashSet<>(); for (Player player : Bukkit.getOnlinePlayers()) { - if (LocationUtil.isLocationAtLocationRadius(player.getLocation(), island.getLocation(world, IslandEnvironment.Island), island.getRadius())) { + boolean isMember = island.hasRole(IslandRole.Owner, player.getUniqueId()) || island.hasRole(IslandRole.Member, player.getUniqueId()) || island.hasRole(IslandRole.Coop, player.getUniqueId()); + if (isMember && LocationUtil.isLocationAtLocationRadius(player.getLocation(), island.getLocation(world, IslandEnvironment.Island), island.getRadius())) { possiblePlayers.add(player); } - } + } // Find highest generator available for (Generator generator : generators) {