Package org.bukkit.command

# Class PluginCommand

java.lang.Object
org.bukkit.command.Command
org.bukkit.command.PluginCommand

All Implemented Interfaces:
  `PluginIdentifiableCommand`

public final class PluginCommand extends Command implements PluginIdentifiableCommand
Represents a `Command` belonging to a plugin

## Field Summary

### Fields inherited from class org.bukkit.command.Command

`description, timings, usageMessage`

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`PluginCommand(@NotNull String name, @NotNull Plugin owner)`

## Method Summary

Modifier and Type
Method
Description
`boolean`
`execute(@NotNull CommandSender sender, @NotNull String commandLabel, @NotNull String[] args)`
Executes the command, returning its success
`@NotNull CommandExecutor`
`getExecutor()`
Gets the `CommandExecutor` associated with this command
`@NotNull Plugin`
`getPlugin()`
Gets the owner of this PluginCommand
`@Nullable TabCompleter`
`getTabCompleter()`
Gets the `TabCompleter` associated with this command.
`void`
`setExecutor(@Nullable CommandExecutor executor)`
Sets the `CommandExecutor` to run when parsing this command
`void`
`setTabCompleter(@Nullable TabCompleter completer)`
Sets the `TabCompleter` to run when tab-completing this command.
`List<String>`
`tabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args)`
Executed on tab completion for this command, returning a list of options the player can tab through.
`String`
`toString()`

### Methods inherited from class org.bukkit.command.Command

`broadcastCommandMessage, broadcastCommandMessage, broadcastCommandMessage, broadcastCommandMessage, getAliases, getDescription, getLabel, getName, getPermission, getPermissionMessage, getTimingName, getUsage, isRegistered, permissionMessage, permissionMessage, register, setAliases, setDescription, setLabel, setName, setPermission, setPermissionMessage, setUsage, tabComplete, testPermission, testPermissionSilent, unregister`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### PluginCommand

protected PluginCommand(@NotNull @NotNull String name, @NotNull @NotNull Plugin owner)

## Method Details

### execute

public boolean execute(@NotNull @NotNull CommandSender sender, @NotNull @NotNull String commandLabel, @NotNull @NotNull String[] args)
Executes the command, returning its success

Specified by:
  `execute` in class `Command`
Parameters:
  `sender` - Source object which is executing this command
  `commandLabel` - The alias of the command used
  `args` - All arguments passed to the command, split via ' '
Returns:
  true if the command was successful, otherwise false

### setExecutor

public void setExecutor(@Nullable @Nullable CommandExecutor executor)
Sets the `CommandExecutor` to run when parsing this command

Parameters:
  `executor` - New executor to run

### getExecutor

@NotNull public @NotNull CommandExecutor getExecutor()
Gets the `CommandExecutor` associated with this command

Returns:
  CommandExecutor object linked to this command

### setTabCompleter

public void setTabCompleter(@Nullable @Nullable TabCompleter completer)
Sets the `TabCompleter` to run when tab-completing this command.

If no TabCompleter is specified, and the command's executor implements TabCompleter, then the executor will be used for tab completion.

Parameters:
  `completer` - New tab completer

### getTabCompleter

@Nullable public @Nullable TabCompleter getTabCompleter()
Gets the `TabCompleter` associated with this command.

Returns:
  TabCompleter object linked to this command

### getPlugin

@NotNull public @NotNull Plugin getPlugin()
Gets the owner of this PluginCommand

Specified by:
  `getPlugin` in interface `PluginIdentifiableCommand`
Returns:
  Plugin that owns this command

### tabComplete

@NotNull public List<String> tabComplete(@NotNull @NotNull CommandSender sender, @NotNull @NotNull String alias, @NotNull @NotNull String[] args) throws CommandException, IllegalArgumentException
Executed on tab completion for this command, returning a list of options the player can tab through.

Delegates to the tab completer if present.

If it is not present or returns null, will delegate to the current command executor if it implements `TabCompleter`. If a non-null list has not been found, will default to standard player name completion in `Command.tabComplete(CommandSender, String, String[])`.

This method does not consider permissions.

Overrides:
  `tabComplete` in class `Command`
Parameters:
  `sender` - Source object which is executing this command
  `alias` - the alias being used
  `args` - 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:
  `CommandException` - if the completer or executor throw an exception during the process of tab-completing.
  `IllegalArgumentException` - if sender, alias, or args is null

### toString

public String toString()

Overrides:
  `toString` in class `Command`