Add ArgumentType.parse() overload that can accept source context
This commit is contained in:
+1
-1
@@ -1 +1 @@
|
|||||||
majorMinor: 1.2
|
majorMinor: 1.3
|
||||||
|
|||||||
@@ -16,6 +16,10 @@ import java.util.concurrent.CompletableFuture;
|
|||||||
public interface ArgumentType<T> {
|
public interface ArgumentType<T> {
|
||||||
T parse(StringReader reader) throws CommandSyntaxException;
|
T parse(StringReader reader) throws CommandSyntaxException;
|
||||||
|
|
||||||
|
default <S> T parse(final StringReader reader, final S source) throws CommandSyntaxException {
|
||||||
|
return parse(reader);
|
||||||
|
}
|
||||||
|
|
||||||
default <S> CompletableFuture<Suggestions> listSuggestions(final CommandContext<S> context, final SuggestionsBuilder builder) {
|
default <S> CompletableFuture<Suggestions> listSuggestions(final CommandContext<S> context, final SuggestionsBuilder builder) {
|
||||||
return Suggestions.empty();
|
return Suggestions.empty();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ public class ArgumentCommandNode<S, T> extends CommandNode<S> {
|
|||||||
@Override
|
@Override
|
||||||
public void parse(final StringReader reader, final CommandContextBuilder<S> contextBuilder) throws CommandSyntaxException {
|
public void parse(final StringReader reader, final CommandContextBuilder<S> contextBuilder) throws CommandSyntaxException {
|
||||||
final int start = reader.getCursor();
|
final int start = reader.getCursor();
|
||||||
final T result = type.parse(reader);
|
final T result = type.parse(reader, contextBuilder.getSource());
|
||||||
final ParsedArgument<S, T> parsed = new ParsedArgument<>(start, reader.getCursor(), result);
|
final ParsedArgument<S, T> parsed = new ParsedArgument<>(start, reader.getCursor(), result);
|
||||||
|
|
||||||
contextBuilder.withArgument(name, parsed);
|
contextBuilder.withArgument(name, parsed);
|
||||||
|
|||||||
Reference in New Issue
Block a user