From ca1dacf2b61e2e828a41bc8086f83b49144db0ac Mon Sep 17 00:00:00 2001 From: Luck Date: Tue, 16 May 2017 21:52:46 +0100 Subject: [PATCH] Invalidate active context cache when a player changes world - closes #288 --- .../main/java/me/lucko/luckperms/bukkit/BukkitListener.java | 3 ++- .../me/lucko/luckperms/common/contexts/ContextManager.java | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/bukkit/src/main/java/me/lucko/luckperms/bukkit/BukkitListener.java b/bukkit/src/main/java/me/lucko/luckperms/bukkit/BukkitListener.java index e04e01ee..2f763a60 100644 --- a/bukkit/src/main/java/me/lucko/luckperms/bukkit/BukkitListener.java +++ b/bukkit/src/main/java/me/lucko/luckperms/bukkit/BukkitListener.java @@ -255,8 +255,9 @@ public class BukkitListener implements Listener { } } - @EventHandler + @EventHandler(priority = EventPriority.LOWEST) public void onWorldChange(PlayerChangedWorldEvent e) { + plugin.getContextManager().invalidateCache(e.getPlayer()); plugin.refreshAutoOp(e.getPlayer()); } } diff --git a/common/src/main/java/me/lucko/luckperms/common/contexts/ContextManager.java b/common/src/main/java/me/lucko/luckperms/common/contexts/ContextManager.java index 9c5dc4f8..d0e08067 100644 --- a/common/src/main/java/me/lucko/luckperms/common/contexts/ContextManager.java +++ b/common/src/main/java/me/lucko/luckperms/common/contexts/ContextManager.java @@ -62,6 +62,10 @@ public class ContextManager { return cache.get(subject); } + public void invalidateCache(T subject){ + cache.invalidate(subject); + } + public void registerCalculator(ContextCalculator calculator) { // calculators registered first should have priority (and be checked last.) calculators.add(0, calculator);