diff --git a/core/src/main/java/co/aikar/commands/BaseCommand.java b/core/src/main/java/co/aikar/commands/BaseCommand.java index 20de1233..4a8f6a16 100644 --- a/core/src/main/java/co/aikar/commands/BaseCommand.java +++ b/core/src/main/java/co/aikar/commands/BaseCommand.java @@ -44,7 +44,6 @@ import java.lang.reflect.Method; import java.lang.reflect.Parameter; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; @@ -253,7 +252,7 @@ public abstract class BaseCommand { this.conditions = annotations.getAnnotationValue(self, Conditions.class, Annotations.REPLACEMENTS | Annotations.NO_EMPTY); registerSubcommands(); - registerPermissions(); + computePermissions(); registerSubclasses(cmd); if (cmdAliases != null) { @@ -378,7 +377,7 @@ public abstract class BaseCommand { /** * This registers all the permissions required to execute this command. */ - private void registerPermissions() { + private void computePermissions() { this.permissions.clear(); if (this.permission != null && !this.permission.isEmpty()) { this.permissions.addAll(Arrays.asList(ACFPatterns.COMMA.split(this.permission))); diff --git a/core/src/main/java/co/aikar/commands/RegisteredCommand.java b/core/src/main/java/co/aikar/commands/RegisteredCommand.java index a57fdd6f..e592b2e3 100644 --- a/core/src/main/java/co/aikar/commands/RegisteredCommand.java +++ b/core/src/main/java/co/aikar/commands/RegisteredCommand.java @@ -40,7 +40,6 @@ import java.lang.reflect.Parameter; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; -import java.util.Collections; import java.util.HashSet; import java.util.LinkedHashMap; import java.util.List; @@ -72,6 +71,8 @@ public class RegisteredCommand permissions = new HashSet<>(); + RegisteredCommand(BaseCommand scope, String command, Method method, String prefSubCommand) { this.scope = scope; this.manager = this.scope.manager; @@ -131,6 +132,7 @@ public class RegisteredCommand getRequiredPermissions() { - Set permissions = scope.getRequiredPermissions(); + private void computePermissions() { + this.permissions.clear(); + this.permissions.addAll(this.scope.getRequiredPermissions()); if (this.permission != null && !this.permission.isEmpty()) { - permissions.addAll(Arrays.asList(ACFPatterns.COMMA.split(this.permission))); + this.permissions.addAll(Arrays.asList(ACFPatterns.COMMA.split(this.permission))); } - return permissions; + } + + public Set getRequiredPermissions() { + return this.permissions; } public boolean requiresPermission(String permission) {