From b5419b186e4882290a188d11d6e661d4f56bd8fd Mon Sep 17 00:00:00 2001 From: Gegy Date: Wed, 7 Aug 2024 15:12:34 +0200 Subject: [PATCH] Add ArgumentType.parse() overload that can accept source context --- gradle.properties | 2 +- .../java/com/mojang/brigadier/arguments/ArgumentType.java | 4 ++++ .../java/com/mojang/brigadier/tree/ArgumentCommandNode.java | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index 6acb096..e0ecf9d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1 +1 @@ -majorMinor: 1.2 +majorMinor: 1.3 diff --git a/src/main/java/com/mojang/brigadier/arguments/ArgumentType.java b/src/main/java/com/mojang/brigadier/arguments/ArgumentType.java index f060b59..f83c841 100644 --- a/src/main/java/com/mojang/brigadier/arguments/ArgumentType.java +++ b/src/main/java/com/mojang/brigadier/arguments/ArgumentType.java @@ -16,6 +16,10 @@ import java.util.concurrent.CompletableFuture; public interface ArgumentType { T parse(StringReader reader) throws CommandSyntaxException; + default T parse(final StringReader reader, final S source) throws CommandSyntaxException { + return parse(reader); + } + default CompletableFuture listSuggestions(final CommandContext context, final SuggestionsBuilder builder) { return Suggestions.empty(); } diff --git a/src/main/java/com/mojang/brigadier/tree/ArgumentCommandNode.java b/src/main/java/com/mojang/brigadier/tree/ArgumentCommandNode.java index 6018eb0..3ef555a 100644 --- a/src/main/java/com/mojang/brigadier/tree/ArgumentCommandNode.java +++ b/src/main/java/com/mojang/brigadier/tree/ArgumentCommandNode.java @@ -56,7 +56,7 @@ public class ArgumentCommandNode extends CommandNode { @Override public void parse(final StringReader reader, final CommandContextBuilder contextBuilder) throws CommandSyntaxException { final int start = reader.getCursor(); - final T result = type.parse(reader); + final T result = type.parse(reader, contextBuilder.getSource()); final ParsedArgument parsed = new ParsedArgument<>(start, reader.getCursor(), result); contextBuilder.withArgument(name, parsed);