diff --git a/src/main/java/world/bentobox/bentobox/managers/IslandsManager.java b/src/main/java/world/bentobox/bentobox/managers/IslandsManager.java index e43e4eb78..a7197cb7e 100644 --- a/src/main/java/world/bentobox/bentobox/managers/IslandsManager.java +++ b/src/main/java/world/bentobox/bentobox/managers/IslandsManager.java @@ -636,8 +636,7 @@ public class IslandsManager { } return getProtectedIslandAt(user.getLocation()) .map(i -> i.getMembers().entrySet().stream() - .map(en -> en.getKey().equals(user.getUniqueId()) && en.getValue() > RanksManager.VISITOR_RANK) - .findAny().orElse(false)) + .anyMatch(en -> en.getKey().equals(user.getUniqueId()) && en.getValue() > RanksManager.VISITOR_RANK)) .orElse(false); } diff --git a/src/test/java/world/bentobox/bentobox/managers/IslandsManagerTest.java b/src/test/java/world/bentobox/bentobox/managers/IslandsManagerTest.java index e27cfbd3d..f9985262d 100644 --- a/src/test/java/world/bentobox/bentobox/managers/IslandsManagerTest.java +++ b/src/test/java/world/bentobox/bentobox/managers/IslandsManagerTest.java @@ -830,9 +830,29 @@ public class IslandsManagerTest { when(is.getMembers()).thenReturn(members); assertFalse(im.userIsOnIsland(world, user)); + // One member, just the owner members.put(user.getUniqueId(), RanksManager.MEMBER_RANK); assertTrue(im.userIsOnIsland(world, user)); + // Add some members + members.put(UUID.randomUUID(), RanksManager.MEMBER_RANK); + members.put(UUID.randomUUID(), RanksManager.MEMBER_RANK); + members.put(UUID.randomUUID(), RanksManager.MEMBER_RANK); + members.put(UUID.randomUUID(), RanksManager.MEMBER_RANK); + members.put(UUID.randomUUID(), RanksManager.MEMBER_RANK); + members.put(UUID.randomUUID(), RanksManager.MEMBER_RANK); + members.put(UUID.randomUUID(), RanksManager.MEMBER_RANK); + assertTrue(im.userIsOnIsland(world, user)); + + // Add some other ranks + members.put(UUID.randomUUID(), RanksManager.BANNED_RANK); + members.put(UUID.randomUUID(), RanksManager.BANNED_RANK); + members.put(UUID.randomUUID(), RanksManager.COOP_RANK); + members.put(UUID.randomUUID(), RanksManager.TRUSTED_RANK); + members.put(UUID.randomUUID(), RanksManager.BANNED_RANK); + assertTrue(im.userIsOnIsland(world, user)); + + // Confirm that if user is not above Member rank then it fails members.put(user.getUniqueId(), RanksManager.BANNED_RANK); assertFalse(im.userIsOnIsland(world, user)); }