diff --git a/src/main/java/world/bentobox/bentobox/managers/IslandsManager.java b/src/main/java/world/bentobox/bentobox/managers/IslandsManager.java index 5b11937f0..7e594c111 100644 --- a/src/main/java/world/bentobox/bentobox/managers/IslandsManager.java +++ b/src/main/java/world/bentobox/bentobox/managers/IslandsManager.java @@ -1650,6 +1650,10 @@ public class IslandsManager { * @param uniqueId - UUID of player */ public void clearRank(int rank, UUID uniqueId) { + Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> clearRankSync(rank, uniqueId)); + } + + void clearRankSync(int rank, UUID uniqueId) { islandCache.getCachedIslands().forEach( i -> i.getMembers().entrySet().removeIf(e -> e.getKey().equals(uniqueId) && e.getValue() == rank)); } diff --git a/src/test/java/world/bentobox/bentobox/managers/IslandsManagerTest.java b/src/test/java/world/bentobox/bentobox/managers/IslandsManagerTest.java index e6f355dda..fa84ccec0 100644 --- a/src/test/java/world/bentobox/bentobox/managers/IslandsManagerTest.java +++ b/src/test/java/world/bentobox/bentobox/managers/IslandsManagerTest.java @@ -1111,9 +1111,9 @@ public class IslandsManagerTest extends AbstractCommonSetup { UUID coopUUID = UUID.randomUUID(); members.put(coopUUID, RanksManager.COOP_RANK); // Clear a random user - im.clearRank(RanksManager.COOP_RANK, UUID.randomUUID()); + im.clearRankSync(RanksManager.COOP_RANK, UUID.randomUUID()); assertEquals(14, members.size()); - im.clearRank(RanksManager.COOP_RANK, coopUUID); + im.clearRankSync(RanksManager.COOP_RANK, coopUUID); assertEquals(13, members.size()); }