Package org.bukkit.command
Class Command
- java.lang.Object
-
- org.bukkit.command.Command
-
- Direct Known Subclasses:
BukkitCommand
,FormattedCommandAlias
,MultipleCommandAlias
,PluginCommand
public abstract class Command extends Object
Represents a Command, which executes various tasks upon user input
-
-
Field Summary
Fields Modifier and Type Field Description protected String
description
CustomTimingsHandler
timings
protected String
usageMessage
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static void
broadcastCommandMessage(CommandSender source, String message)
static void
broadcastCommandMessage(CommandSender source, String message, boolean sendToSource)
abstract boolean
execute(CommandSender sender, String commandLabel, String[] args)
Executes the command, returning its successList<String>
getAliases()
Returns a list of active aliases of this commandString
getDescription()
Gets a brief description of this commandString
getLabel()
Returns the label for this commandString
getName()
Returns the name of this commandString
getPermission()
Gets the permission required by users to be able to perform this commandString
getPermissionMessage()
Returns a message to be displayed on a failed permission check for this commandString
getUsage()
Gets an example usage of this commandboolean
isRegistered()
Returns the current registered state of this commandboolean
register(CommandMap commandMap)
Registers this command to a CommandMap.Command
setAliases(List<String> aliases)
Sets the list of aliases to request on registration for this command.Command
setDescription(String description)
Sets a brief description of this command.boolean
setLabel(String name)
Sets the label of this command.boolean
setName(String name)
Sets the name of this command.void
setPermission(String permission)
Sets the permission required by users to be able to perform this commandCommand
setPermissionMessage(String permissionMessage)
Sets the message sent when a permission check failsCommand
setUsage(String usage)
Sets the example usage of this commandList<String>
tabComplete(CommandSender sender, String alias, String[] args)
Executed on tab completion for this command, returning a list of options the player can tab through.List<String>
tabComplete(CommandSender sender, String alias, String[] args, Location location)
Executed on tab completion for this command, returning a list of options the player can tab through.boolean
testPermission(CommandSender target)
Tests the givenCommandSender
to see if they can perform this command.boolean
testPermissionSilent(CommandSender target)
Tests the givenCommandSender
to see if they can perform this command.String
toString()
boolean
unregister(CommandMap commandMap)
Unregisters this command from the passed CommandMap applying any outstanding changes
-
-
-
Field Detail
-
description
protected String description
-
usageMessage
protected String usageMessage
-
timings
public CustomTimingsHandler timings
-
-
Method Detail
-
execute
public abstract boolean execute(@NotNull CommandSender sender, @NotNull String commandLabel, @NotNull String[] args)
Executes the command, returning its success- Parameters:
sender
- Source object which is executing this commandcommandLabel
- The alias of the command usedargs
- All arguments passed to the command, split via ' '- Returns:
- true if the command was successful, otherwise false
-
tabComplete
@NotNull public List<String> tabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) throws IllegalArgumentException
Executed on tab completion for this command, returning a list of options the player can tab through.- Parameters:
sender
- Source object which is executing this commandalias
- the alias being usedargs
- All arguments passed to the command, split via ' '- Returns:
- a list of tab-completions for the specified arguments. This will never be null. List may be immutable.
- Throws:
IllegalArgumentException
- if sender, alias, or args is null
-
tabComplete
@NotNull public List<String> tabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args, @Nullable Location location) throws IllegalArgumentException
Executed on tab completion for this command, returning a list of options the player can tab through.- Parameters:
sender
- Source object which is executing this commandalias
- the alias being usedargs
- All arguments passed to the command, split via ' 'location
- The position looked at by the sender, or null if none- Returns:
- a list of tab-completions for the specified arguments. This will never be null. List may be immutable.
- Throws:
IllegalArgumentException
- if sender, alias, or args is null
-
getName
@NotNull public String getName()
Returns the name of this command- Returns:
- Name of this command
-
setName
public boolean setName(@NotNull String name)
Sets the name of this command.May only be used before registering the command. Will return true if the new name is set, and false if the command has already been registered.
- Parameters:
name
- New command name- Returns:
- returns true if the name change happened instantly or false if the command was already registered
-
getPermission
@Nullable public String getPermission()
Gets the permission required by users to be able to perform this command- Returns:
- Permission name, or null if none
-
setPermission
public void setPermission(@Nullable String permission)
Sets the permission required by users to be able to perform this command- Parameters:
permission
- Permission name or null
-
testPermission
public boolean testPermission(@NotNull CommandSender target)
Tests the givenCommandSender
to see if they can perform this command.If they do not have permission, they will be informed that they cannot do this.
- Parameters:
target
- User to test- Returns:
- true if they can use it, otherwise false
-
testPermissionSilent
public boolean testPermissionSilent(@NotNull CommandSender target)
Tests the givenCommandSender
to see if they can perform this command.No error is sent to the sender.
- Parameters:
target
- User to test- Returns:
- true if they can use it, otherwise false
-
getLabel
@NotNull public String getLabel()
Returns the label for this command- Returns:
- Label of this command
-
setLabel
public boolean setLabel(@NotNull String name)
Sets the label of this command.May only be used before registering the command. Will return true if the new name is set, and false if the command has already been registered.
- Parameters:
name
- The command's name- Returns:
- returns true if the name change happened instantly or false if the command was already registered
-
register
public boolean register(@NotNull CommandMap commandMap)
Registers this command to a CommandMap. Once called it only allows changes the registered CommandMap- Parameters:
commandMap
- the CommandMap to register this command to- Returns:
- true if the registration was successful (the current registered CommandMap was the passed CommandMap or null) false otherwise
-
unregister
public boolean unregister(@NotNull CommandMap commandMap)
Unregisters this command from the passed CommandMap applying any outstanding changes- Parameters:
commandMap
- the CommandMap to unregister- Returns:
- true if the unregistration was successful (the current registered CommandMap was the passed CommandMap or null) false otherwise
-
isRegistered
public boolean isRegistered()
Returns the current registered state of this command- Returns:
- true if this command is currently registered false otherwise
-
getAliases
@NotNull public List<String> getAliases()
Returns a list of active aliases of this command- Returns:
- List of aliases
-
getPermissionMessage
@Nullable public String getPermissionMessage()
Returns a message to be displayed on a failed permission check for this command- Returns:
- Permission check failed message
-
getDescription
@NotNull public String getDescription()
Gets a brief description of this command- Returns:
- Description of this command
-
getUsage
@NotNull public String getUsage()
Gets an example usage of this command- Returns:
- One or more example usages
-
setAliases
@NotNull public Command setAliases(@NotNull List<String> aliases)
Sets the list of aliases to request on registration for this command. This is not effective outside of defining aliases in thePluginDescriptionFile.getCommands()
(under the `aliases
' node) is equivalent to this method.- Parameters:
aliases
- aliases to register to this command- Returns:
- this command object, for chaining
-
setDescription
@NotNull public Command setDescription(@NotNull String description)
Sets a brief description of this command. Defining a description in thePluginDescriptionFile.getCommands()
(under the `description
' node) is equivalent to this method.- Parameters:
description
- new command description- Returns:
- this command object, for chaining
-
setPermissionMessage
@NotNull public Command setPermissionMessage(@Nullable String permissionMessage)
Sets the message sent when a permission check fails- Parameters:
permissionMessage
- new permission message, null to indicate default message, or an empty string to indicate no message- Returns:
- this command object, for chaining
-
setUsage
@NotNull public Command setUsage(@NotNull String usage)
Sets the example usage of this command- Parameters:
usage
- new example usage- Returns:
- this command object, for chaining
-
broadcastCommandMessage
public static void broadcastCommandMessage(@NotNull CommandSender source, @NotNull String message)
-
broadcastCommandMessage
public static void broadcastCommandMessage(@NotNull CommandSender source, @NotNull String message, boolean sendToSource)
-
-