Skip to content

Commit 060e700

Browse files
authored
Merge pull request #2505 from BentoBoxWorld/2504_lag_on_logout
Make the rank clearing async to avoid lag. #2504
2 parents f5abdd4 + 0965e07 commit 060e700

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

src/main/java/world/bentobox/bentobox/managers/IslandsManager.java

+4
Original file line numberDiff line numberDiff line change
@@ -1650,6 +1650,10 @@ public void clearArea(Location loc) {
16501650
* @param uniqueId - UUID of player
16511651
*/
16521652
public void clearRank(int rank, UUID uniqueId) {
1653+
Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> clearRankSync(rank, uniqueId));
1654+
}
1655+
1656+
void clearRankSync(int rank, UUID uniqueId) {
16531657
islandCache.getCachedIslands().forEach(
16541658
i -> i.getMembers().entrySet().removeIf(e -> e.getKey().equals(uniqueId) && e.getValue() == rank));
16551659
}

src/test/java/world/bentobox/bentobox/managers/IslandsManagerTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -1111,9 +1111,9 @@ public void testClearRank() {
11111111
UUID coopUUID = UUID.randomUUID();
11121112
members.put(coopUUID, RanksManager.COOP_RANK);
11131113
// Clear a random user
1114-
im.clearRank(RanksManager.COOP_RANK, UUID.randomUUID());
1114+
im.clearRankSync(RanksManager.COOP_RANK, UUID.randomUUID());
11151115
assertEquals(14, members.size());
1116-
im.clearRank(RanksManager.COOP_RANK, coopUUID);
1116+
im.clearRankSync(RanksManager.COOP_RANK, coopUUID);
11171117
assertEquals(13, members.size());
11181118
}
11191119

0 commit comments

Comments
 (0)