diff --git a/brigadier/src/main/java/co.aikar.commands/ACFBrigadierManager.java b/brigadier/src/main/java/co.aikar.commands/ACFBrigadierManager.java index 5aab23c6..5c45bd2d 100644 --- a/brigadier/src/main/java/co.aikar.commands/ACFBrigadierManager.java +++ b/brigadier/src/main/java/co.aikar.commands/ACFBrigadierManager.java @@ -89,10 +89,9 @@ public class ACFBrigadierManager { root = rootBuilder.build(); boolean isForwardingCommand = rootCommand.getDefCommand() instanceof ForwardingCommand; - if (rootCommand.getDefaultRegisteredCommand() != null) { - CommandNode paramNode = root; - CommandParameter[] parameters = rootCommand.getDefaultRegisteredCommand().parameters; - registerParameters(parameters, rootCommand, paramNode, suggestionProvider, executor, permCheckerRoot); + RegisteredCommand defaultCommand = rootCommand.getDefaultRegisteredCommand(); + if (defaultCommand != null) { + registerParameters(defaultCommand, root, suggestionProvider, executor, permCheckerSub); } for (Map.Entry subCommand : rootCommand.getSubCommands().entries()) { @@ -137,9 +136,7 @@ public class ACFBrigadierManager { subCommandNode = root; } - CommandNode paramNode = subCommandNode; - CommandParameter[] parameters = subCommand.getValue().parameters; - registerParameters(parameters, subCommand.getValue(), paramNode, suggestionProvider, executor, permCheckerSub); + registerParameters(subCommand.getValue(), subCommandNode, suggestionProvider, executor, permCheckerSub); if (!isForwardingCommand) { currentParent.addChild(subCommandNode); @@ -149,14 +146,13 @@ public class ACFBrigadierManager { return root; } - void registerParameters(CommandParameter[] parameters, - C command, - CommandNode node, - SuggestionProvider suggestionProvider, - Command executor, - BiPredicate permChecker) { - for (int i = 0; i < parameters.length; i++) { - CommandParameter param = parameters[i]; + void registerParameters(RegisteredCommand command, + CommandNode node, + SuggestionProvider suggestionProvider, + Command executor, + BiPredicate permChecker) { + for (int i = 0; i < command.parameters.length; i++) { + CommandParameter param = command.parameters[i]; CommandParameter nextParam = param.getNextParam(); if (param.isCommandIssuer() || (param.canExecuteWithoutInput() && nextParam != null && !nextParam.canExecuteWithoutInput())) { continue;