Skip to content

Commit 2175d87

Browse files
committed
fix cleanup handling in permission cache
1 parent 7249f48 commit 2175d87

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

shared/src/main/java/me/xginko/aef/utils/CachingPermTool.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,21 @@ public static boolean hasPermission(AEFPermission permission, HumanEntity human)
5454

5555
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
5656
private void onLeave(PlayerQuitEvent event) {
57-
Cache<AEFPermission, Boolean> cache = permissionCacheMap.remove(event.getPlayer().getUniqueId());
58-
cache.invalidateAll();
59-
cache.cleanUp();
57+
if (permissionCacheMap.containsKey(event.getPlayer().getUniqueId())) {
58+
Cache<AEFPermission, Boolean> cache = permissionCacheMap.get(event.getPlayer().getUniqueId());
59+
cache.invalidateAll();
60+
cache.cleanUp();
61+
permissionCacheMap.remove(event.getPlayer().getUniqueId());
62+
}
6063
}
6164

6265
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
6366
private void onKick(PlayerKickEvent event) {
64-
Cache<AEFPermission, Boolean> cache = permissionCacheMap.remove(event.getPlayer().getUniqueId());
65-
cache.invalidateAll();
66-
cache.cleanUp();
67+
if (permissionCacheMap.containsKey(event.getPlayer().getUniqueId())) {
68+
Cache<AEFPermission, Boolean> cache = permissionCacheMap.get(event.getPlayer().getUniqueId());
69+
cache.invalidateAll();
70+
cache.cleanUp();
71+
permissionCacheMap.remove(event.getPlayer().getUniqueId());
72+
}
6773
}
6874
}

0 commit comments

Comments
 (0)