Interface CommandTreeNode<T extends CommandTreeNode<T>>
-
- All Known Subinterfaces:
CommandTreeNode.Amount
,CommandTreeNode.Argument<T>
,CommandTreeNode.Basic
,CommandTreeNode.EntitySelection
,CommandTreeNode.Range<S>
,CommandTreeNode.Root
,CommandTreeNode.StringParser
public interface CommandTreeNode<T extends CommandTreeNode<T>>
Builds a tree of command parameters for sending to clients. For use with customCommandRegistrar
s andCommand.Raw
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interface
CommandTreeNode.Amount
ACommandTreeNode
that controls whether multiple entries can be parsed.static interface
CommandTreeNode.Argument<T extends CommandTreeNode<T>>
ACommandTreeNode
that can be used as a child.static interface
CommandTreeNode.Basic
ACommandTreeNode
with no known properties to set.static interface
CommandTreeNode.EntitySelection
ACommandTreeNode
that augments entity based parameters.static interface
CommandTreeNode.NodeFactory
Factory to create a root node.static interface
CommandTreeNode.Range<S extends java.lang.Number>
ACommandTreeNode
that allows for a min-max range to be set.static interface
CommandTreeNode.Root
ACommandTreeNode
that acts as the root of a command.static interface
CommandTreeNode.StringParser
ACommandTreeNode
that allows for the setting of how a string based parser will behave.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description T
child(java.lang.String key, CommandTreeNode.Argument<?> childNode)
Creates a child of this node with the given key that accepts a non-literal argument.default <C extends CommandTreeNode.Argument<C>>
Tchild(java.lang.String key, CommandTreeNodeType<C> type, java.util.function.Consumer<C> processor)
Creates a child of this node with the given key that accepts a non-literal argument.default <C extends CommandTreeNode.Argument<C>>
Tchild(java.lang.String key, DefaultedRegistryReference<CommandTreeNodeType<C>> type, java.util.function.Consumer<C> processor)
Creates a child of this node with the given key that accepts a non-literal argument.T
completions(@Nullable CommandCompletionProvider completionProvider)
Declares that the node should use the providedCommandCompletionProvider
for generating completions on the client.default T
completions(@Nullable DefaultedRegistryReference<CommandCompletionProvider> completionProvider)
Declares that the node should use the providedCommandCompletionProvider
for generating completions on the client.T
customCompletions()
Declares that this node uses custom completions and, as such, tab completions should query the server.T
executable()
Declares that the node thisCommandTreeNode
represents is executable, meaning that a command string that stops here is considered complete.static CommandTreeNode<CommandTreeNode.Basic>
literal()
Creates a node that uses its key as a literal.T
redirect(CommandTreeNode<?> redirectTarget)
Declares that this element will redirect processing to the given node in this tree after this node has been processed.T
requires(@Nullable java.util.function.Predicate<CommandCause> requirement)
Declares that this element can only be parsed by those with the given requirement.static CommandTreeNode<CommandTreeNode.Root>
root()
Creates a root node for the tree.
-
-
-
Method Detail
-
root
static CommandTreeNode<CommandTreeNode.Root> root()
Creates a root node for the tree.The return value is in an 'intermediate' state, where it must have additional information supplied to become a useful part of the command tree. The node should be at least one of
executable()
ortaking an argument
, and may have other attributes applied.- Returns:
- The root node.
-
literal
static CommandTreeNode<CommandTreeNode.Basic> literal()
Creates a node that uses its key as a literal.The return value is in an 'intermediate' state, where it must have additional information supplied to become a useful part of the command tree. The node should be at least one of
executable()
ortaking an argument
, and may have other attributes applied.- Returns:
- The literal.
-
child
T child(java.lang.String key, CommandTreeNode.Argument<?> childNode)
Creates a child of this node with the given key that accepts a non-literal argument.The builder returned by this method is the same builder as that invoked on. The child builder is provided in the
childNode
node.- Parameters:
key
- The name of the child nodechildNode
- The child node- Returns:
- This, for chaining.
- See Also:
for the node types that can be created
-
child
default <C extends CommandTreeNode.Argument<C>> T child(java.lang.String key, DefaultedRegistryReference<CommandTreeNodeType<C>> type, java.util.function.Consumer<C> processor)
Creates a child of this node with the given key that accepts a non-literal argument.The builder returned by this method is the same builder as that invoked on. The child builder is provided in the
childNode
node.This variant will create a new node based on the provided key and allow for processing before adding the node as a child
- Type Parameters:
C
- The type ofCommandTreeNode.Argument
to be created- Parameters:
key
- The name of the child nodetype
- the type of argument to use in the child nodeprocessor
- A callback that will receive the created child node- Returns:
- This, for chaining.
- See Also:
for the node types that can be created
-
child
default <C extends CommandTreeNode.Argument<C>> T child(java.lang.String key, CommandTreeNodeType<C> type, java.util.function.Consumer<C> processor)
Creates a child of this node with the given key that accepts a non-literal argument.The builder returned by this method is the same builder as that invoked on. The child builder is provided in the
childNode
node.This variant will create a new node based on the provided key and allow for processing before adding the node as a child
- Type Parameters:
C
- The type ofCommandTreeNode.Argument
to be created- Parameters:
key
- The name of the child nodetype
- the type of argument to use in the child nodeprocessor
- A callback that will receive the created child node- Returns:
- This, for chaining.
- See Also:
for the node types that can be created
-
redirect
T redirect(CommandTreeNode<?> redirectTarget)
Declares that this element will redirect processing to the given node in this tree after this node has been processed.The node that is provided here will not be executed and will not be checked to see if its requirements are met. This node will act as if its has the target node's children.
- Parameters:
redirectTarget
- The node to redirect to- Returns:
- This, for chaining
-
requires
T requires(@Nullable java.util.function.Predicate<CommandCause> requirement)
Declares that this element can only be parsed by those with the given requirement.- Parameters:
requirement
- The requirement- Returns:
- This, for chaining
-
executable
T executable()
Declares that the node thisCommandTreeNode
represents is executable, meaning that a command string that stops here is considered complete.- Returns:
- This, for chaining
-
completions
default T completions(@Nullable DefaultedRegistryReference<CommandCompletionProvider> completionProvider)
Declares that the node should use the providedCommandCompletionProvider
for generating completions on the client.This overrides
customCompletions()
.- Parameters:
completionProvider
- The provider this node should use- Returns:
- This, for chaining
-
completions
T completions(@Nullable CommandCompletionProvider completionProvider)
Declares that the node should use the providedCommandCompletionProvider
for generating completions on the client.This overrides
customCompletions()
.- Parameters:
completionProvider
- The provider this node should use- Returns:
- This, for chaining
-
customCompletions
T customCompletions()
Declares that this node uses custom completions and, as such, tab completions should query the server.This overrides
completions(CommandCompletionProvider)
.- Returns:
- This, for chaining.
-
-