Made ArgumentBuilders use a RootCommandNode to hold their arguments
This commit is contained in:
parent
5760f94009
commit
d8c9e15a1c
4 changed files with 12 additions and 10 deletions
|
@ -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<T extends ArgumentBuilder<?>> {
|
||||
private final List<ArgumentBuilder> 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<ArgumentBuilder> getArguments() {
|
||||
return arguments;
|
||||
public List<CommandNode> getArguments() {
|
||||
return arguments.getChildren();
|
||||
}
|
||||
|
||||
public T executes(Command command) {
|
||||
|
|
|
@ -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<LiteralArgumentBuilder> {
|
||||
|
@ -26,8 +27,8 @@ public class LiteralArgumentBuilder extends ArgumentBuilder<LiteralArgumentBuild
|
|||
public LiteralCommandNode build() {
|
||||
LiteralCommandNode result = new LiteralCommandNode(getLiteral(), getCommand());
|
||||
|
||||
for (ArgumentBuilder argument : getArguments()) {
|
||||
result.addChild(argument.build());
|
||||
for (CommandNode argument : getArguments()) {
|
||||
result.addChild(argument);
|
||||
}
|
||||
|
||||
return result;
|
||||
|
|
|
@ -2,6 +2,7 @@ package net.minecraft.commands.builder;
|
|||
|
||||
import net.minecraft.commands.arguments.CommandArgumentType;
|
||||
import net.minecraft.commands.tree.ArgumentCommandNode;
|
||||
import net.minecraft.commands.tree.CommandNode;
|
||||
|
||||
public class RequiredArgumentBuilder<T> extends ArgumentBuilder<RequiredArgumentBuilder<T>> {
|
||||
private final String name;
|
||||
|
@ -32,8 +33,8 @@ public class RequiredArgumentBuilder<T> extends ArgumentBuilder<RequiredArgument
|
|||
public ArgumentCommandNode<T> build() {
|
||||
ArgumentCommandNode<T> result = new ArgumentCommandNode<T>(getName(), getType(), getCommand());
|
||||
|
||||
for (ArgumentBuilder argument : getArguments()) {
|
||||
result.addChild(argument.build());
|
||||
for (CommandNode argument : getArguments()) {
|
||||
result.addChild(argument);
|
||||
}
|
||||
|
||||
return result;
|
||||
|
|
|
@ -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<TestableArgumentBuilder> {
|
||||
|
|
Loading…
Reference in a new issue