From d8c9e15a1c4a144cea674e069de5dacaa5a26049 Mon Sep 17 00:00:00 2001 From: Nathan Adams Date: Thu, 25 Sep 2014 16:36:45 +0200 Subject: [PATCH] Made ArgumentBuilders use a RootCommandNode to hold their arguments --- .../minecraft/commands/builder/ArgumentBuilder.java | 10 +++++----- .../commands/builder/LiteralArgumentBuilder.java | 5 +++-- .../commands/builder/RequiredArgumentBuilder.java | 5 +++-- .../commands/builder/ArgumentBuilderTest.java | 2 +- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/main/java/net/minecraft/commands/builder/ArgumentBuilder.java b/src/main/java/net/minecraft/commands/builder/ArgumentBuilder.java index 6cbb402..f79d0fa 100644 --- a/src/main/java/net/minecraft/commands/builder/ArgumentBuilder.java +++ b/src/main/java/net/minecraft/commands/builder/ArgumentBuilder.java @@ -1,24 +1,24 @@ package net.minecraft.commands.builder; -import com.google.common.collect.Lists; import net.minecraft.commands.Command; import net.minecraft.commands.tree.CommandNode; +import net.minecraft.commands.tree.RootCommandNode; import java.util.List; public abstract class ArgumentBuilder> { - private final List arguments = Lists.newArrayList(); + private final RootCommandNode arguments = new RootCommandNode(); private Command command; protected abstract T getThis(); public T then(ArgumentBuilder argument) { - arguments.add(argument); + arguments.addChild(argument.build()); return getThis(); } - public List getArguments() { - return arguments; + public List getArguments() { + return arguments.getChildren(); } public T executes(Command command) { diff --git a/src/main/java/net/minecraft/commands/builder/LiteralArgumentBuilder.java b/src/main/java/net/minecraft/commands/builder/LiteralArgumentBuilder.java index 0b3a593..e9b8d0b 100644 --- a/src/main/java/net/minecraft/commands/builder/LiteralArgumentBuilder.java +++ b/src/main/java/net/minecraft/commands/builder/LiteralArgumentBuilder.java @@ -1,5 +1,6 @@ package net.minecraft.commands.builder; +import net.minecraft.commands.tree.CommandNode; import net.minecraft.commands.tree.LiteralCommandNode; public class LiteralArgumentBuilder extends ArgumentBuilder { @@ -26,8 +27,8 @@ public class LiteralArgumentBuilder extends ArgumentBuilder extends ArgumentBuilder> { private final String name; @@ -32,8 +33,8 @@ public class RequiredArgumentBuilder extends ArgumentBuilder build() { ArgumentCommandNode result = new ArgumentCommandNode(getName(), getType(), getCommand()); - for (ArgumentBuilder argument : getArguments()) { - result.addChild(argument.build()); + for (CommandNode argument : getArguments()) { + result.addChild(argument); } return result; diff --git a/src/test/java/net/minecraft/commands/builder/ArgumentBuilderTest.java b/src/test/java/net/minecraft/commands/builder/ArgumentBuilderTest.java index f96361c..e39f72a 100644 --- a/src/test/java/net/minecraft/commands/builder/ArgumentBuilderTest.java +++ b/src/test/java/net/minecraft/commands/builder/ArgumentBuilderTest.java @@ -25,7 +25,7 @@ public class ArgumentBuilderTest { builder.then(argument); assertThat(builder.getArguments(), hasSize(1)); - assertThat(builder.getArguments(), hasItems((ArgumentBuilder) argument)); + assertThat(builder.getArguments(), hasItems((CommandNode) argument.build())); } private static class TestableArgumentBuilder extends ArgumentBuilder {