Invalidate active context cache when a player changes world - closes #288

This commit is contained in:
Luck 2017-05-16 21:52:46 +01:00
parent abc1c164cf
commit ca1dacf2b6
No known key found for this signature in database
GPG Key ID: EFA9B3EC5FD90F8B
2 changed files with 6 additions and 1 deletions

View File

@ -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());
}
}

View File

@ -62,6 +62,10 @@ public class ContextManager<T> {
return cache.get(subject);
}
public void invalidateCache(T subject){
cache.invalidate(subject);
}
public void registerCalculator(ContextCalculator<T> calculator) {
// calculators registered first should have priority (and be checked last.)
calculators.add(0, calculator);