CommandAPI 9.7.0
An API for the command UI introduced in Minecraft 1.13
|
The abstract base for the command tree, just representing a single command node. More...
Public Member Functions | |
Command< S > | getCommand () |
Returns the command to execute when executing this command node. More... | |
Collection< CommandNode< S > > | getChildren () |
Returns all child command nodes. More... | |
CommandNode< S > | getChild (final String name) |
Returns a child with the given getName . More... | |
CommandNode< S > | getRedirect () |
Returns the command node to redirect to. More... | |
RedirectModifier< S > | getRedirectModifier () |
Returns the redirect modifier to apply when redirecting. More... | |
boolean | canUse (final S source) |
Checks whether the given command source can use this command node. More... | |
void | addChild (final CommandNode< S > node) |
Adds a new child node to this command node. More... | |
void | findAmbiguities (final AmbiguityConsumer< S > consumer) |
Tries to find ambiguities in the children of this command node and recurses down. More... | |
boolean | equals (final Object o) |
int | hashCode () |
Predicate< S > | getRequirement () |
Returns the requirement for this command node, that is used by canUse(Object) . More... | |
abstract String | getName () |
Returns the name of this command node. More... | |
abstract String | getUsageText () |
Returns some usage text for this command node. More... | |
abstract void | parse (StringReader reader, CommandContextBuilder< S > contextBuilder) throws CommandSyntaxException |
Tries to parse the command given by the reader and stores the results in the contextBuilder. More... | |
abstract CompletableFuture< Suggestions > | listSuggestions (CommandContext< S > context, SuggestionsBuilder builder) throws CommandSyntaxException |
Lists suggestions for this command node, given the context and uses the passed SuggestionsBuilder to build them. More... | |
abstract ArgumentBuilder< S, ?> | createBuilder () |
Creates a builder for this command node. More... | |
Collection<? extends CommandNode< S > > | getRelevantNodes (final StringReader input) |
Returns all relevant command nodes for the input, so all nodes that are probably able to parse the input. More... | |
int | compareTo (final CommandNode< S > o) |
boolean | isFork () |
Checks whether this command node forks. More... | |
abstract Collection< String > | getExamples () |
Returns example usages for this command node, which are used to find ambiguities. More... | |
Protected Member Functions | |
CommandNode (final Command< S > command, final Predicate< S > requirement, final CommandNode< S > redirect, final RedirectModifier< S > modifier, final boolean forks) | |
abstract boolean | isValidInput (final String input) |
Checks if the given input is valid for this command node, i.e. More... | |
abstract String | getSortedKey () |
Returns a key for this command node, that is used for ordering the command nodes. More... | |
The abstract base for the command tree, just representing a single command node.
<S> | the type of the command source |
void com.mojang.brigadier.tree.CommandNode< S >.addChild | ( | final CommandNode< S > | node | ) |
Adds a new child node to this command node.
This will replace a command node with the same name, but there exist some bugs and some design decisions are not final as of now. Subsequently the exact behaviour in this case is not mandated. For a more detailed post about the problems, read this github issue.
You are not allowed to add children to commands with a getRedirect()
target!
node | the child command node to add |
UnsupportedOperationException | if you try to add a RootCommandNode to any other command node |
boolean com.mojang.brigadier.tree.CommandNode< S >.canUse | ( | final S | source | ) |
Checks whether the given command source can use this command node.
This just checks the getRequirement()
predicate, which could e.g. check for permissions.
source | the command source to check for |
|
abstract |
Creates a builder for this command node.
Reimplemented in com.mojang.brigadier.tree.ArgumentCommandNode< S, T >, com.mojang.brigadier.tree.LiteralCommandNode< S >, and com.mojang.brigadier.tree.RootCommandNode< S >.
void com.mojang.brigadier.tree.CommandNode< S >.findAmbiguities | ( | final AmbiguityConsumer< S > | consumer | ) |
Tries to find ambiguities in the children of this command node and recurses down.
This can be used to detect whether multiple paths could be taken with a single input, which is not an ideal state for parsing commands. See CommandDispatcher#findAmbiguities
for more information.
consumer | the AmbiguityConsumer to call when ambiguities are found |
CommandNode< S > com.mojang.brigadier.tree.CommandNode< S >.getChild | ( | final String | name | ) |
Returns a child with the given getName
.
name | the name of the child command node |
Collection< CommandNode< S > > com.mojang.brigadier.tree.CommandNode< S >.getChildren | ( | ) |
Returns all child command nodes.
Command< S > com.mojang.brigadier.tree.CommandNode< S >.getCommand | ( | ) |
Returns the command to execute when executing this command node.
|
abstract |
Returns example usages for this command node, which are used to find ambiguities.
Reimplemented in com.mojang.brigadier.tree.ArgumentCommandNode< S, T >, com.mojang.brigadier.tree.LiteralCommandNode< S >, and com.mojang.brigadier.tree.RootCommandNode< S >.
|
abstract |
Returns the name of this command node.
Reimplemented in com.mojang.brigadier.tree.ArgumentCommandNode< S, T >, com.mojang.brigadier.tree.LiteralCommandNode< S >, and com.mojang.brigadier.tree.RootCommandNode< S >.
CommandNode< S > com.mojang.brigadier.tree.CommandNode< S >.getRedirect | ( | ) |
Returns the command node to redirect to.
RedirectModifier< S > com.mojang.brigadier.tree.CommandNode< S >.getRedirectModifier | ( | ) |
Returns the redirect modifier to apply when redirecting.
Collection<? extends CommandNode< S > > com.mojang.brigadier.tree.CommandNode< S >.getRelevantNodes | ( | final StringReader | input | ) |
Returns all relevant command nodes for the input, so all nodes that are probably able to parse the input.
input | the input to check for |
Predicate< S > com.mojang.brigadier.tree.CommandNode< S >.getRequirement | ( | ) |
Returns the requirement for this command node, that is used by canUse(Object)
.
canUse(Object)
|
abstractprotected |
Returns a key for this command node, that is used for ordering the command nodes.
Reimplemented in com.mojang.brigadier.tree.ArgumentCommandNode< S, T >, com.mojang.brigadier.tree.LiteralCommandNode< S >, and com.mojang.brigadier.tree.RootCommandNode< S >.
|
abstract |
Returns some usage text for this command node.
Reimplemented in com.mojang.brigadier.tree.ArgumentCommandNode< S, T >, com.mojang.brigadier.tree.LiteralCommandNode< S >, and com.mojang.brigadier.tree.RootCommandNode< S >.
boolean com.mojang.brigadier.tree.CommandNode< S >.isFork | ( | ) |
Checks whether this command node forks.
See CommandDispatcher#execute(ParseResults)
for an explanation of what it does.
|
abstractprotected |
Checks if the given input is valid for this command node, i.e.
if it is what the command expects.
This is used to find ambiguities.
input | the input to check |
Reimplemented in com.mojang.brigadier.tree.ArgumentCommandNode< S, T >, com.mojang.brigadier.tree.LiteralCommandNode< S >, and com.mojang.brigadier.tree.RootCommandNode< S >.
|
abstract |
Lists suggestions for this command node, given the context and uses the passed SuggestionsBuilder
to build them.
context | the CommandContext to use for finding suggestions |
builder | the suggestions builder |
CommandSyntaxException | if the command is not well formed |
Reimplemented in com.mojang.brigadier.tree.ArgumentCommandNode< S, T >, com.mojang.brigadier.tree.LiteralCommandNode< S >, and com.mojang.brigadier.tree.RootCommandNode< S >.
|
abstract |
Tries to parse the command given by the reader and stores the results in the contextBuilder.
reader | the reader to read from |
contextBuilder | the context builder to store the results in |
CommandSyntaxException | if the input was malformed |
Reimplemented in com.mojang.brigadier.tree.ArgumentCommandNode< S, T >, com.mojang.brigadier.tree.LiteralCommandNode< S >, and com.mojang.brigadier.tree.RootCommandNode< S >.