All Methods Instance Methods Concrete Methods Modifier and Type Method Description
@NonNull ArgumentParseResult<@NonNull T>
parse(@NonNull CommandContext<@NonNull C> commandContext, @NonNull Queue<@NonNull String> inputQueue)Parse command input into a command result.
@NonNull List<@NonNull String>
suggestions(@NonNull CommandContext<C> commandContext, @NonNull String input)Get a list of suggested arguments that would be correctly parsed by this parser
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
public MethodArgumentParser(@NonNull BiFunction<CommandContext<C>,String,List<String>> suggestionProvider, @NonNull Object instance, @NonNull Method method) throws ExceptionCreate a new parser
suggestionProvider- Suggestion provider
instance- Instance that owns the method
method- The annotated method
Exception- If the method lookup fails
public @NonNull ArgumentParseResult<@NonNull T> parse(@NonNull CommandContext<@NonNull C> commandContext, @NonNull Queue<@NonNull String> inputQueue)Description copied from interface:
ArgumentParserParse command input into a command result.
This method may be called when a command chain is being parsed for execution (using
CommandManager.executeCommand(Object, String)) or when a command is being parsed to provide context for suggestions (using
CommandManager.suggest(Object, String)). It is possible to use
CommandContext.isSuggestions()} to see what the purpose of the parsing is. Particular care should be taken when parsing for suggestions, as the parsing method is then likely to be called once for every character written by the command sender.
This method should never throw any exceptions under normal circumstances. Instead, if the parsing for some reason cannot be done successfully
ArgumentParseResult.failure(Throwable)should be returned. This then wraps any exception that should be forwarded to the command sender.
The parser is assumed to be completely stateless and should not store any information about the command sender or the command context. Instead, information should be stored in the
public @NonNull List<@NonNull String> suggestions(@NonNull CommandContext<C> commandContext, @NonNull String input)Description copied from interface:
ArgumentParserGet a list of suggested arguments that would be correctly parsed by this parser
This method is likely to be called for every character provided by the sender and so it may be necessary to cache results locally to prevent unnecessary computations