diff --git a/prismarine-minecraft-data b/prismarine-minecraft-data index 843fc3287..7151ce11d 160000 --- a/prismarine-minecraft-data +++ b/prismarine-minecraft-data @@ -1 +1 @@ -Subproject commit 843fc32877802b9b86ae291a2b2fa3d633c24183 +Subproject commit 7151ce11dcef265ae87c7d279f2a237d1158a05c diff --git a/src/main/java/net/minestom/server/command/CommandManager.java b/src/main/java/net/minestom/server/command/CommandManager.java index 90adda252..6d85ab5c1 100644 --- a/src/main/java/net/minestom/server/command/CommandManager.java +++ b/src/main/java/net/minestom/server/command/CommandManager.java @@ -447,12 +447,13 @@ public final class CommandManager { // Find shared part boolean foundSharedPart = false; for (Argument[] parsedArguments : syntaxesArguments) { - if (ArrayUtils.sameStart(arguments, parsedArguments, i + 1)) { + final int index = i + 1; + if (ArrayUtils.sameStart(arguments, parsedArguments, index)) { final Argument sharedArgument = parsedArguments[i]; final List storedNodes = storedArgumentsNodes.get(sharedArgument); argChildren = new IntArrayList(); - lastNodes = storedNodes.get(storedNodes.size() - Math.max(arguments.length, parsedArguments.length)); + lastNodes = storedNodes.get(index); foundSharedPart = true; } } diff --git a/src/test/java/demo/commands/HealthCommand.java b/src/test/java/demo/commands/HealthCommand.java index 6147c0aff..b3eeaf89c 100644 --- a/src/test/java/demo/commands/HealthCommand.java +++ b/src/test/java/demo/commands/HealthCommand.java @@ -3,7 +3,6 @@ package demo.commands; import net.minestom.server.command.CommandSender; import net.minestom.server.command.builder.Arguments; import net.minestom.server.command.builder.Command; -import net.minestom.server.command.builder.arguments.Argument; import net.minestom.server.command.builder.arguments.ArgumentType; import net.minestom.server.command.builder.arguments.number.ArgumentNumber; import net.minestom.server.command.builder.exception.ArgumentSyntaxException; @@ -12,15 +11,15 @@ import net.minestom.server.entity.Player; public class HealthCommand extends Command { public HealthCommand() { - super("health", "h", "healthbar"); + super("health"); setCondition(this::condition); setDefaultExecutor(this::defaultExecutor); - Argument modeArg = ArgumentType.Word("mode").from("set", "add"); + var modeArg = ArgumentType.Word("mode").from("set", "add"); - Argument valueArg = ArgumentType.Integer("value").between(0, 100); + var valueArg = ArgumentType.Integer("value").between(0, 100); setArgumentCallback(this::onModeError, modeArg); setArgumentCallback(this::onValueError, valueArg);