diff --git a/common/src/main/java/me/lucko/luckperms/common/buffers/ExpiringCache.java b/common/src/main/java/me/lucko/luckperms/common/buffers/ExpiringCache.java index c2b9bd0ac..751fe0e0d 100644 --- a/common/src/main/java/me/lucko/luckperms/common/buffers/ExpiringCache.java +++ b/common/src/main/java/me/lucko/luckperms/common/buffers/ExpiringCache.java @@ -76,5 +76,9 @@ public abstract class ExpiringCache implements Supplier { } return this.value; } + + public void invalidate() { + this.expirationNanos = 0; + } } 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 d0d3dc7ef..26f2b7655 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 @@ -233,7 +233,10 @@ public abstract class ContextManager { throw new NullPointerException("subject"); } - this.subjectCaches.invalidate(subject); + ContextsCache cache = this.subjectCaches.getIfPresent(subject); + if (cache != null) { + cache.invalidate(); + } } Contexts calculate(T subject) {