Package org.bukkit.command

# Interface CommandMap

All Known Implementing Classes:
  `SimpleCommandMap`

public interface CommandMap

## Method Summary

Modifier and Type
Method
Description
`void`
`clearCommands()`
Clears all registered commands.
`boolean`
`dispatch(@NotNull CommandSender sender, @NotNull String cmdLine)`
Looks for the requested command and executes it if found.
`@Nullable Command`
`getCommand(@NotNull String name)`
Gets the command registered to the specified name
`Map<String,Command>`
`getKnownCommands()`
Return a Map of known commands
`boolean`
`register(@NotNull String label, @NotNull String fallbackPrefix, @NotNull Command command)`
Registers a command.
`boolean`
`register(@NotNull String fallbackPrefix, @NotNull Command command)`
Registers a command.
`void`
`registerAll(@NotNull String fallbackPrefix, @NotNull List<Command> commands)`
Registers all the commands belonging to a certain plugin.
`@Nullable List<String>`
`tabComplete(@NotNull CommandSender sender, @NotNull String cmdLine)`
Looks for the requested command and executes an appropriate tab-completer if found.
`@Nullable List<String>`
`tabComplete(@NotNull CommandSender sender, @NotNull String cmdLine, @Nullable Location location)`
Looks for the requested command and executes an appropriate tab-completer if found.

## Method Details

### registerAll

void registerAll(@NotNull @NotNull String fallbackPrefix, @NotNull @NotNull List<Command> commands)
Registers all the commands belonging to a certain plugin.

Caller can use:-

- command.getName() to determine the label registered for this command
- command.getAliases() to determine the aliases which where registered

Parameters:
  `fallbackPrefix` - a prefix which is prepended to each command with a ':' one or more times to make the command unique
  `commands` - a list of commands to register

### register

boolean register(@NotNull @NotNull String label, @NotNull @NotNull String fallbackPrefix, @NotNull @NotNull Command command)
Registers a command. Returns true on success; false if name is already taken and fallback had to be used.

Caller can use:-

- command.getName() to determine the label registered for this command
- command.getAliases() to determine the aliases which where registered

Parameters:
  `label` - the label of the command, without the '/'-prefix.
  `fallbackPrefix` - a prefix which is prepended to the command with a ':' one or more times to make the command unique
  `command` - the command to register
Returns:
  true if command was registered with the passed in label, false otherwise, which indicates the fallbackPrefix was used one or more times

### register

boolean register(@NotNull @NotNull String fallbackPrefix, @NotNull @NotNull Command command)
Registers a command. Returns true on success; false if name is already taken and fallback had to be used.

Caller can use:-

- command.getName() to determine the label registered for this command
- command.getAliases() to determine the aliases which where registered

Parameters:
  `fallbackPrefix` - a prefix which is prepended to the command with a ':' one or more times to make the command unique
  `command` - the command to register, from which label is determined from the command name
Returns:
  true if command was registered with the passed in label, false otherwise, which indicates the fallbackPrefix was used one or more times

### dispatch

boolean dispatch(@NotNull @NotNull CommandSender sender, @NotNull @NotNull String cmdLine) throws CommandException
Looks for the requested command and executes it if found.

Parameters:
  `sender` - The command's sender
  `cmdLine` - command + arguments. Example: "/test abc 123"
Returns:
  returns false if no target is found, true otherwise.
Throws:
  `CommandException` - Thrown when the executor for the given command fails with an unhandled exception

### clearCommands

void clearCommands()
Clears all registered commands.

### getCommand

@Nullable @Nullable Command getCommand(@NotNull @NotNull String name)
Gets the command registered to the specified name

Parameters:
  `name` - Name of the command to retrieve
Returns:
  Command with the specified name or null if a command with that label doesn't exist

### tabComplete

@Nullable @Nullable List<String> tabComplete(@NotNull @NotNull CommandSender sender, @NotNull @NotNull String cmdLine) throws IllegalArgumentException
Looks for the requested command and executes an appropriate tab-completer if found. This method will also tab-complete partial commands.

Parameters:
  `sender` - The command's sender.
  `cmdLine` - The entire command string to tab-complete, excluding initial slash.
Returns:
  a list of possible tab-completions. This list may be immutable. Will be null if no matching command of which sender has permission.
Throws:
  `CommandException` - Thrown when the tab-completer for the given command fails with an unhandled exception
  `IllegalArgumentException` - if either sender or cmdLine are null

### tabComplete

@Nullable @Nullable List<String> tabComplete(@NotNull @NotNull CommandSender sender, @NotNull @NotNull String cmdLine, @Nullable @Nullable Location location) throws IllegalArgumentException
Looks for the requested command and executes an appropriate tab-completer if found. This method will also tab-complete partial commands.

Parameters:
  `sender` - The command's sender.
  `cmdLine` - The entire command string to tab-complete, excluding initial slash.
  `location` - The position looked at by the sender, or null if none
Returns:
  a list of possible tab-completions. This list may be immutable. Will be null if no matching command of which sender has permission.
Throws:
  `CommandException` - Thrown when the tab-completer for the given command fails with an unhandled exception
  `IllegalArgumentException` - if either sender or cmdLine are null

### getKnownCommands

@NotNull Map<String,Command> getKnownCommands()
Return a Map of known commands

Returns:
  known commands