CommandAPI 9.3.0
An API for the command UI introduced in Minecraft 1.13
dev.jorel.commandapi.arguments.AbstractArgument< T, Impl, Argument, CommandSender > Class Template Referenceabstract

The core abstract class for Command API arguments. More...

+ Inheritance diagram for dev.jorel.commandapi.arguments.AbstractArgument< T, Impl, Argument, CommandSender >:

Public Member Functions

abstract Class< T > getPrimitiveType ()
 Returns the primitive type of the current Argument. More...
 
abstract CommandAPIArgumentType getArgumentType ()
 Returns the argument type for this argument. More...
 
final ArgumentType<?> getRawType ()
 Returns the NMS or brigadier type for this argument. More...
 
final String getNodeName ()
 Returns the name of this argument's node. More...
 
abstract< Source > T parseArgument (CommandContext< Source > cmdCtx, String key, CommandArguments previousArgs) throws CommandSyntaxException
 Parses an argument, returning the specific Bukkit object that the argument represents. More...
 
Impl includeSuggestions (ArgumentSuggestions< CommandSender > suggestions)
 Include suggestions to add to the list of default suggestions represented by this argument. More...
 
Optional< ArgumentSuggestions< CommandSender > > getIncludedSuggestions ()
 Returns an optional function which produces an array of suggestions which should be added to existing suggestions. More...
 
Impl replaceSuggestions (ArgumentSuggestions< CommandSender > suggestions)
 Replace the suggestions of this argument. More...
 
final Optional< ArgumentSuggestions< CommandSender > > getOverriddenSuggestions ()
 Returns an optional function that maps the command sender to an IStringTooltip array of suggestions for the current command. More...
 
final Impl withPermission (CommandPermission permission)
 Assigns the given permission as a requirement to execute this command. More...
 
final Impl withPermission (String permission)
 Assigns the given permission as a requirement to execute this command. More...
 
final CommandPermission getArgumentPermission ()
 Returns the permission required to run this command. More...
 
final Predicate< CommandSender > getRequirements ()
 Returns the requirements required to run this command. More...
 
final Impl withRequirement (Predicate< CommandSender > requirement)
 Adds a requirement that has to be satisfied to use this argument. More...
 
boolean isListed ()
 Returns true if this argument will be listed in the Object args[] of the command executor. More...
 
Impl setListed (boolean listed)
 Sets whether this argument will be listed in the Object args[] of the command executor. More...
 
boolean isOptional ()
 Returns true if this argument will be optional when executing the command this argument is included in. More...
 
Impl setOptional (boolean optional)
 Sets whether this argument will be optional when executing the command this argument is included in. More...
 
List< ArgumentgetCombinedArguments ()
 Returns a list of arguments linked to this argument. More...
 
boolean hasCombinedArguments ()
 Returns true if this argument has linked arguments. More...
 
final Impl combineWith (Argument... combinedArguments)
 Adds combined arguments to this argument. More...
 
List< String > getEntityNames (Object argument)
 Gets a list of entity names for the current provided argument. More...
 
void copyPermissionsAndRequirements (Argument argument)
 Copies permissions and requirements from the provided argument to this argument This also resets additional permissions and requirements. More...
 
String toString ()
 
Impl then (final AbstractArgumentTree<?, Argument, CommandSender > tree)
 Create a child branch on this node. More...
 
CommandAPIExecutor< CommandSender, AbstractCommandSender<? extends CommandSender > > getExecutor ()
 Returns the executors that this command has. More...
 
void setExecutor (CommandAPIExecutor< CommandSender, AbstractCommandSender<? extends CommandSender > > executor)
 Sets the executors for this command. More...
 
Impl clearExecutors ()
 Clear all executors from the current command builder. More...
 
Impl instance ()
 Returns the instance of this class with the class Impl. More...
 

Protected Member Functions

 AbstractArgument (String nodeName, ArgumentType<?> rawType)
 Constructs an argument with a given NMS/brigadier type. More...
 

Protected Attributes

CommandAPIExecutor< CommandSender, AbstractCommandSender<? extends CommandSender > > executor = new CommandAPIExecutor<>()
 The CommandAPIExecutor for this executable implementation.
 

Detailed Description

The core abstract class for Command API arguments.

Parameters
<T>The type of the underlying object that this argument casts to
<Impl>The class extending this class, used as the return type for chain calls
<Argument>The implementation of Argument used by the class extending this class
<CommandSender>The CommandSender class used by the class extending this class

Constructor & Destructor Documentation

◆ AbstractArgument()

dev.jorel.commandapi.arguments.AbstractArgument< T, Impl, Argument, CommandSender >.AbstractArgument ( String  nodeName,
ArgumentType<?>  rawType 
)
protected

Constructs an argument with a given NMS/brigadier type.

Parameters
nodeNamethe name to assign to this argument node
rawTypethe NMS or brigadier type to be used for this argument

Member Function Documentation

◆ clearExecutors()

Impl dev.jorel.commandapi.Executable< Impl, CommandSender >.clearExecutors ( )
inherited

Clear all executors from the current command builder.

Returns
this command builder

◆ combineWith()

final Impl dev.jorel.commandapi.arguments.AbstractArgument< T, Impl, Argument, CommandSender >.combineWith ( Argument...  combinedArguments)

Adds combined arguments to this argument.

Combined arguments are used to have required arguments after optional arguments by ignoring they exist until they are added to the arguments array for registration.

This method also causes permissions and requirements from this argument to be copied over to the arguments you want to combine this argument with. Their permissions and requirements will be ignored.

Parameters
combinedArgumentsThe arguments to combine to this argument
Returns
this current argument

◆ copyPermissionsAndRequirements()

void dev.jorel.commandapi.arguments.AbstractArgument< T, Impl, Argument, CommandSender >.copyPermissionsAndRequirements ( Argument  argument)

Copies permissions and requirements from the provided argument to this argument This also resets additional permissions and requirements.

Parameters
argumentThe argument to copy permissions and requirements from

◆ getArgumentPermission()

final CommandPermission dev.jorel.commandapi.arguments.AbstractArgument< T, Impl, Argument, CommandSender >.getArgumentPermission ( )

Returns the permission required to run this command.

Returns
the permission required to run this command

◆ getArgumentType()

abstract CommandAPIArgumentType dev.jorel.commandapi.arguments.AbstractArgument< T, Impl, Argument, CommandSender >.getArgumentType ( )
abstract

Returns the argument type for this argument.

Returns
the argument type for this argument

◆ getCombinedArguments()

List< Argument > dev.jorel.commandapi.arguments.AbstractArgument< T, Impl, Argument, CommandSender >.getCombinedArguments ( )

Returns a list of arguments linked to this argument.

Returns
A list of arguments linked to this argument

◆ getEntityNames()

List< String > dev.jorel.commandapi.arguments.AbstractArgument< T, Impl, Argument, CommandSender >.getEntityNames ( Object  argument)

Gets a list of entity names for the current provided argument.

This is expected to be implemented by EntitySelectorArgument in Bukkit, see EntitySelectorArgument#getEntityNames(Object)

Parameters
argumenta parsed (Bukkit) object representing the entity selector type. This is either a List, an Entity or a Player
Returns
a list of strings representing the names of the entity or entities from argument

◆ getExecutor()

CommandAPIExecutor< CommandSender, AbstractCommandSender<? extends CommandSender > > dev.jorel.commandapi.Executable< Impl, CommandSender >.getExecutor ( )
inherited

Returns the executors that this command has.

Returns
the executors that this command has

◆ getIncludedSuggestions()

Optional< ArgumentSuggestions< CommandSender > > dev.jorel.commandapi.arguments.AbstractArgument< T, Impl, Argument, CommandSender >.getIncludedSuggestions ( )

Returns an optional function which produces an array of suggestions which should be added to existing suggestions.

Returns
An Optional containing a function which generates suggestions

◆ getNodeName()

final String dev.jorel.commandapi.arguments.AbstractArgument< T, Impl, Argument, CommandSender >.getNodeName ( )

Returns the name of this argument's node.

Returns
the name of this argument's node

◆ getOverriddenSuggestions()

final Optional< ArgumentSuggestions< CommandSender > > dev.jorel.commandapi.arguments.AbstractArgument< T, Impl, Argument, CommandSender >.getOverriddenSuggestions ( )

Returns an optional function that maps the command sender to an IStringTooltip array of suggestions for the current command.

Returns
a function that provides suggestions, or Optional.empty() if there are no overridden suggestions.

◆ getPrimitiveType()

abstract Class< T > dev.jorel.commandapi.arguments.AbstractArgument< T, Impl, Argument, CommandSender >.getPrimitiveType ( )
abstract

Returns the primitive type of the current Argument.

After executing a command, this argument should yield an object of this returned class.

Returns
the type that this argument yields when the command is run

◆ getRawType()

final ArgumentType<?> dev.jorel.commandapi.arguments.AbstractArgument< T, Impl, Argument, CommandSender >.getRawType ( )

Returns the NMS or brigadier type for this argument.

Returns
the NMS or brigadier type for this argument

◆ getRequirements()

final Predicate< CommandSender > dev.jorel.commandapi.arguments.AbstractArgument< T, Impl, Argument, CommandSender >.getRequirements ( )

Returns the requirements required to run this command.

Returns
the requirements required to run this command

◆ hasCombinedArguments()

boolean dev.jorel.commandapi.arguments.AbstractArgument< T, Impl, Argument, CommandSender >.hasCombinedArguments ( )

Returns true if this argument has linked arguments.

Returns
true if this argument has linked arguments

◆ includeSuggestions()

Impl dev.jorel.commandapi.arguments.AbstractArgument< T, Impl, Argument, CommandSender >.includeSuggestions ( ArgumentSuggestions< CommandSender >  suggestions)

Include suggestions to add to the list of default suggestions represented by this argument.

Parameters
suggestionsAn ArgumentSuggestions object representing the suggestions. Use the Static methods on ArgumentSuggestions to create these.
Returns
the current argument

◆ instance()

Impl dev.jorel.commandapi.ChainableBuilder< Impl >.instance ( )
inherited

Returns the instance of this class with the class Impl.

Used for chaining builder methods.

Implemented in dev.jorel.commandapi.arguments.Argument< T >.

◆ isListed()

boolean dev.jorel.commandapi.arguments.AbstractArgument< T, Impl, Argument, CommandSender >.isListed ( )

Returns true if this argument will be listed in the Object args[] of the command executor.

Returns
true if this argument will be listed in the Object args[] of the command executor

◆ isOptional()

boolean dev.jorel.commandapi.arguments.AbstractArgument< T, Impl, Argument, CommandSender >.isOptional ( )

Returns true if this argument will be optional when executing the command this argument is included in.

Returns
true if this argument will be optional when executing the command this argument is included in

◆ parseArgument()

abstract< Source > T dev.jorel.commandapi.arguments.AbstractArgument< T, Impl, Argument, CommandSender >.parseArgument ( CommandContext< Source >  cmdCtx,
String  key,
CommandArguments  previousArgs 
) throws CommandSyntaxException
abstract

Parses an argument, returning the specific Bukkit object that the argument represents.

This is intended for use by the internals of the CommandAPI and isn't expected to be used outside the CommandAPI

Parameters
<Source>the command source type
cmdCtxthe context which ran this command
keythe name of the argument node
previousArgsa CommandArguments object holding previous parsed arguments
Returns
the parsed object represented by this argument
Exceptions
CommandSyntaxExceptionif parsing fails

◆ replaceSuggestions()

Impl dev.jorel.commandapi.arguments.AbstractArgument< T, Impl, Argument, CommandSender >.replaceSuggestions ( ArgumentSuggestions< CommandSender >  suggestions)

Replace the suggestions of this argument.

Parameters
suggestionsAn ArgumentSuggestions object representing the suggestions. Use the static methods in ArgumentSuggestions to create these.
Returns
the current argument

◆ setExecutor()

void dev.jorel.commandapi.Executable< Impl, CommandSender >.setExecutor ( CommandAPIExecutor< CommandSender, AbstractCommandSender<? extends CommandSender > >  executor)
inherited

Sets the executors for this command.

Parameters
executorthe executors for this command

◆ setListed()

Impl dev.jorel.commandapi.arguments.AbstractArgument< T, Impl, Argument, CommandSender >.setListed ( boolean  listed)

Sets whether this argument will be listed in the Object args[] of the command executor.

Parameters
listedif true, this argument will be included in the Object args[] of the command executor
Returns
this current argument

◆ setOptional()

Impl dev.jorel.commandapi.arguments.AbstractArgument< T, Impl, Argument, CommandSender >.setOptional ( boolean  optional)

Sets whether this argument will be optional when executing the command this argument is included in.

Parameters
optionalif true, this argument will be optional when executing the command this argument is included in
Returns
this current argument

◆ then()

Impl dev.jorel.commandapi.AbstractArgumentTree< Impl, Argument, CommandSender >.then ( final AbstractArgumentTree<?, Argument, CommandSender >  tree)
inherited

Create a child branch on this node.

Parameters
treeThe child branch
Returns
this tree node

◆ withPermission() [1/2]

final Impl dev.jorel.commandapi.arguments.AbstractArgument< T, Impl, Argument, CommandSender >.withPermission ( CommandPermission  permission)

Assigns the given permission as a requirement to execute this command.

Parameters
permissionthe permission required to execute this command
Returns
this current argument

◆ withPermission() [2/2]

final Impl dev.jorel.commandapi.arguments.AbstractArgument< T, Impl, Argument, CommandSender >.withPermission ( String  permission)

Assigns the given permission as a requirement to execute this command.

Parameters
permissionthe permission required to execute this command
Returns
this current argument

◆ withRequirement()

final Impl dev.jorel.commandapi.arguments.AbstractArgument< T, Impl, Argument, CommandSender >.withRequirement ( Predicate< CommandSender >  requirement)

Adds a requirement that has to be satisfied to use this argument.

This method can be used multiple times and each use of this method will AND its requirement with the previously declared ones

Parameters
requirementthe predicate that must be satisfied to use this argument
Returns
this current argument