CommandAPI 11.1.0
An API for the command UI introduced in Minecraft 1.13
dev.jorel.commandapi.CommandAPIPlatform< Argument, CommandSender, Source > Interface Template Reference

Public Member Functions

void onLoad ()
 Platform-specific stuff that should happen when the CommandAPI is loaded, such as checking dependencies and initializing helper classes.
 
void onEnable ()
 Platform-specific stuff that should happen when the CommandAPI is enabled.
 
void onDisable ()
 Platform-specific stuff that should happen when the CommandAPI is disabled.
 
AbstractCommandSender<? extends CommandSender > getSenderForCommand (CommandContext< Source > cmdCtx, boolean forceNative)
 Converts a Brigadier CommandContext into an AbstractCommandSender wrapping the platform's CommandSender. More...
 
AbstractCommandSender<? extends CommandSender > getCommandSenderFromCommandSource (Source source)
 Converts the class used by Brigadier when running commands into an AbstractCommandSender wrapping the platform's CommandSender. More...
 
Source getBrigadierSourceFromCommandSender (AbstractCommandSender<? extends CommandSender > sender)
 Converts a CommandSender wrapped in an AbstractCommandSender to an object Brigadier can use when running its commands. More...
 
AbstractCommandSender<? extends CommandSender > wrapCommandSender (CommandSender sender)
 Wraps a CommandSender in an AbstractCommandSender class, the inverse operation to AbstractCommandSender#getSource(). More...
 
void registerPermission (String string)
 
SuggestionProvider< Source > getSuggestionProvider (SuggestionProviders suggestionProvider)
 
void preCommandRegistration (String commandName)
 Stuff to run before a command is generated. More...
 
void postCommandRegistration (RegisteredCommand registeredCommand, LiteralCommandNode< Source > resultantNode, List< LiteralCommandNode< Source > > aliasNodes)
 Stuff to run after a command has been generated. More...
 
LiteralCommandNode< Source > registerCommandNode (LiteralArgumentBuilder< Source > node, String namespace)
 Registers a Brigadier command node and returns the built node.
 
void unregister (String commandName, boolean unregisterNamespaces)
 Unregisters a command from the CommandGraph so it can't be run anymore. More...
 
CommandAPIMessenger<?, ?> setupMessenger ()
 Creates a new CommandAPIMessenger for this platform. More...
 
CommandDispatcher< Source > getBrigadierDispatcher ()
 
void createDispatcherFile (File file, CommandDispatcher< Source > dispatcher) throws IOException
 Creates a JSON file that describes the hierarchical structure of the commands that have been registered by the server. More...
 
default CommandAPILogger getLogger ()
 
void reloadDataPacks ()
 Reloads the server's data packs to include CommandAPI commands.
 
void updateRequirements (AbstractPlayer<?> player)
 Updates the requirements required for a given player to execute a command. More...
 
AbstractCommandAPICommand<?, Argument, CommandSender > newConcreteCommandAPICommand (CommandMetaData< CommandSender > meta)
 
Argument newConcreteMultiLiteralArgument (String nodeName, String[] literals)
 
Argument newConcreteLiteralArgument (String nodeName, String literal)
 

Detailed Description

Parameters
<Argument>The implementation of AbstractArgument used for the platform
<CommandSender>The class for running platforms commands
<Source>The class for running Brigadier commands

Member Function Documentation

◆ createDispatcherFile()

void dev.jorel.commandapi.CommandAPIPlatform< Argument, CommandSender, Source >.createDispatcherFile ( File  file,
CommandDispatcher< Source >  dispatcher 
) throws IOException

Creates a JSON file that describes the hierarchical structure of the commands that have been registered by the server.

Parameters
fileThe JSON file to write to
dispatcherThe Brigadier CommandDispatcher
Exceptions
IOExceptionWhen the file fails to be written to

◆ getBrigadierDispatcher()

CommandDispatcher< Source > dev.jorel.commandapi.CommandAPIPlatform< Argument, CommandSender, Source >.getBrigadierDispatcher ( )
Returns
The Brigadier CommandDispatcher tree being used by the platform's server

◆ getBrigadierSourceFromCommandSender()

Source dev.jorel.commandapi.CommandAPIPlatform< Argument, CommandSender, Source >.getBrigadierSourceFromCommandSender ( AbstractCommandSender<? extends CommandSender >  sender)

Converts a CommandSender wrapped in an AbstractCommandSender to an object Brigadier can use when running its commands.

Parameters
senderThe CommandSender to convert, wrapped in an AbstractCommandSender
Returns
The Brigadier Source object represented by the sender

◆ getCommandSenderFromCommandSource()

AbstractCommandSender<? extends CommandSender > dev.jorel.commandapi.CommandAPIPlatform< Argument, CommandSender, Source >.getCommandSenderFromCommandSource ( Source  source)

Converts the class used by Brigadier when running commands into an AbstractCommandSender wrapping the platform's CommandSender.

Parameters
sourceThe Brigadier source object
Returns
An AbstractCommandSender wrapping the CommandSender represented by the source object

◆ getLogger()

default CommandAPILogger dev.jorel.commandapi.CommandAPIPlatform< Argument, CommandSender, Source >.getLogger ( )
Returns
A new default Logger meant for the CommandAPI to use. This logger will be used by the CommandAPI if one is not set using CommandAPI#setLogger(CommandAPILogger).

◆ getSenderForCommand()

AbstractCommandSender<? extends CommandSender > dev.jorel.commandapi.CommandAPIPlatform< Argument, CommandSender, Source >.getSenderForCommand ( CommandContext< Source >  cmdCtx,
boolean  forceNative 
)

Converts a Brigadier CommandContext into an AbstractCommandSender wrapping the platform's CommandSender.

Parameters
cmdCtxA Brigadier CommandContext
forceNativeTrue if the CommandSender should be forced into a native CommandSender
Returns
An AbstractCommandSender wrapping the CommandSender represented by the CommandContext

◆ postCommandRegistration()

void dev.jorel.commandapi.CommandAPIPlatform< Argument, CommandSender, Source >.postCommandRegistration ( RegisteredCommand  registeredCommand,
LiteralCommandNode< Source >  resultantNode,
List< LiteralCommandNode< Source > >  aliasNodes 
)

Stuff to run after a command has been generated.

Parameters
registeredCommandA RegisteredCommand instance that holds the CommandAPI information for the command
resultantNodeThe node that was registered
aliasNodesAny alias nodes that were also registered as a part of this registration process

◆ preCommandRegistration()

void dev.jorel.commandapi.CommandAPIPlatform< Argument, CommandSender, Source >.preCommandRegistration ( String  commandName)

Stuff to run before a command is generated.

For Bukkit, this involves checking if a command was declared in the plugin.yml when it isn't supposed to be.

Parameters
commandNameThe name of the command about to be registered

◆ setupMessenger()

CommandAPIMessenger<?, ?> dev.jorel.commandapi.CommandAPIPlatform< Argument, CommandSender, Source >.setupMessenger ( )

Creates a new CommandAPIMessenger for this platform.

This is only intended to be called once by CommandAPIHandler when it is enabling the CommandAPI.

Returns
The new CommandAPIMessenger that was created.

◆ unregister()

void dev.jorel.commandapi.CommandAPIPlatform< Argument, CommandSender, Source >.unregister ( String  commandName,
boolean  unregisterNamespaces 
)

Unregisters a command from the CommandGraph so it can't be run anymore.

Parameters
commandNamethe name of the command to unregister
unregisterNamespaceswhether the unregistration system should attempt to remove versions of the command that start with a namespace. Eg. minecraft:command, bukkit:command, or plugin:command

◆ updateRequirements()

void dev.jorel.commandapi.CommandAPIPlatform< Argument, CommandSender, Source >.updateRequirements ( AbstractPlayer<?>  player)

Updates the requirements required for a given player to execute a command.

Parameters
playerthe player to update

◆ wrapCommandSender()

AbstractCommandSender<? extends CommandSender > dev.jorel.commandapi.CommandAPIPlatform< Argument, CommandSender, Source >.wrapCommandSender ( CommandSender  sender)

Wraps a CommandSender in an AbstractCommandSender class, the inverse operation to AbstractCommandSender#getSource().

Parameters
senderThe CommandSender to wrap
Returns
An AbstractCommandSender with a class appropriate to the underlying class of the CommandSender