diff --git a/api/src/main/java/me/lucko/luckperms/api/context/ContextManager.java b/api/src/main/java/me/lucko/luckperms/api/context/ContextManager.java index 116dd5e2..74a4167f 100644 --- a/api/src/main/java/me/lucko/luckperms/api/context/ContextManager.java +++ b/api/src/main/java/me/lucko/luckperms/api/context/ContextManager.java @@ -150,13 +150,12 @@ public interface ContextManager { void registerCalculator(@NonNull ContextCalculator calculator); /** - * Registers a static context calculator with the manager. - * - *

Static calculators provide the same context for all subjects.

+ * Unregisters a context calculator with the manager. * * @param calculator the calculator + * @since 4.4 */ - void registerStaticCalculator(@NonNull StaticContextCalculator calculator); + void unregisterCalculator(@NonNull ContextCalculator calculator); /** * Invalidates the lookup cache for a given subject diff --git a/bungee/src/main/java/me/lucko/luckperms/bungee/LPBungeePlugin.java b/bungee/src/main/java/me/lucko/luckperms/bungee/LPBungeePlugin.java index e33f1b83..4936710e 100644 --- a/bungee/src/main/java/me/lucko/luckperms/bungee/LPBungeePlugin.java +++ b/bungee/src/main/java/me/lucko/luckperms/bungee/LPBungeePlugin.java @@ -141,7 +141,7 @@ public class LPBungeePlugin extends AbstractLuckPermsPlugin { this.contextManager.registerCalculator(new BackendServerCalculator(this)); if (this.bootstrap.getProxy().getPluginManager().getPlugin("RedisBungee") != null) { - this.contextManager.registerStaticCalculator(new RedisBungeeCalculator()); + this.contextManager.registerCalculator(new RedisBungeeCalculator()); } } diff --git a/common/src/main/java/me/lucko/luckperms/common/api/implementation/ApiContextManager.java b/common/src/main/java/me/lucko/luckperms/common/api/implementation/ApiContextManager.java index 27b12f3d..ca2125c0 100644 --- a/common/src/main/java/me/lucko/luckperms/common/api/implementation/ApiContextManager.java +++ b/common/src/main/java/me/lucko/luckperms/common/api/implementation/ApiContextManager.java @@ -29,7 +29,6 @@ import me.lucko.luckperms.api.Contexts; import me.lucko.luckperms.api.User; import me.lucko.luckperms.api.context.ContextCalculator; import me.lucko.luckperms.api.context.ImmutableContextSet; -import me.lucko.luckperms.api.context.StaticContextCalculator; import me.lucko.luckperms.common.context.ContextManager; import me.lucko.luckperms.common.plugin.LuckPermsPlugin; @@ -109,9 +108,9 @@ public class ApiContextManager implements me.lucko.luckperms.api.context.Context } @Override - public void registerStaticCalculator(@NonNull StaticContextCalculator calculator) { + public void unregisterCalculator(@NonNull ContextCalculator calculator) { Objects.requireNonNull(calculator, "calculator"); - this.handle.registerStaticCalculator(calculator); + } @Override diff --git a/common/src/main/java/me/lucko/luckperms/common/context/ContextManager.java b/common/src/main/java/me/lucko/luckperms/common/context/ContextManager.java index 34cede38..c288cdf6 100644 --- a/common/src/main/java/me/lucko/luckperms/common/context/ContextManager.java +++ b/common/src/main/java/me/lucko/luckperms/common/context/ContextManager.java @@ -163,24 +163,21 @@ public abstract class ContextManager { ); } - /** - * Registers a context calculator with the manager. - * - * @param calculator the calculator - */ public void registerCalculator(ContextCalculator calculator) { // calculators registered first should have priority (and be checked last.) this.calculators.add(0, calculator); + + if (calculator instanceof StaticContextCalculator) { + StaticContextCalculator staticCalculator = (StaticContextCalculator) calculator; + this.staticCalculators.add(0, staticCalculator); + } } - /** - * Registers a static context calculator with the manager. - * - * @param calculator the calculator - */ - public void registerStaticCalculator(StaticContextCalculator calculator) { - registerCalculator(calculator); - this.staticCalculators.add(0, calculator); + public void unregisterCalculator(ContextCalculator calculator) { + this.calculators.remove(calculator); + if (calculator instanceof StaticContextCalculator) { + this.staticCalculators.remove(calculator); + } } /** diff --git a/common/src/main/java/me/lucko/luckperms/common/plugin/AbstractLuckPermsPlugin.java b/common/src/main/java/me/lucko/luckperms/common/plugin/AbstractLuckPermsPlugin.java index 2df7d326..9473c2d5 100644 --- a/common/src/main/java/me/lucko/luckperms/common/plugin/AbstractLuckPermsPlugin.java +++ b/common/src/main/java/me/lucko/luckperms/common/plugin/AbstractLuckPermsPlugin.java @@ -153,7 +153,7 @@ public abstract class AbstractLuckPermsPlugin implements LuckPermsPlugin { // setup contextmanager & register common calculators setupContextManager(); - getContextManager().registerStaticCalculator(new LPStaticContextsCalculator(getConfiguration())); + getContextManager().registerCalculator(new LPStaticContextsCalculator(getConfiguration())); // setup platform hooks setupPlatformHooks();