程序包 org.bukkit.command

# 类 Command

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

直接已知子类:
  `BukkitCommand`, `FormattedCommandAlias`, `MultipleCommandAlias`, `PluginCommand`

public abstract class Command extends Object
代表一个命令，在用户输入时执行各种任务.

- ## 字段概要

  字段
  修饰符和类型
  字段
  说明
  `protected String`
  `description`
  `CustomTimingsHandler`
  `timings`
  `protected String`
  `usageMessage`

- ## 构造器概要

  构造器
  限定符
  构造器
  说明
  `protected`
  `Command(@NotNull String name)`
  `protected`
  `Command(@NotNull String name, @NotNull String description, @NotNull String usageMessage, @NotNull List<String> aliases)`

- ## 方法概要

  修饰符和类型
  方法
  说明
  `static void`
  `broadcastCommandMessage(@NotNull CommandSender source, @NotNull String message)`
  `static void`
  `broadcastCommandMessage(@NotNull CommandSender source, @NotNull String message, boolean sendToSource)`
  `abstract boolean`
  `execute(@NotNull CommandSender sender, @NotNull String commandLabel, @NotNull String[] args)`
  执行命令.
  `@NotNull List<String>`
  `getAliases()`
  返回这个命令激活的别名列表.
  `@NotNull String`
  `getDescription()`
  获取这个命令的简介.
  `@NotNull String`
  `getLabel()`
  返回这个命令的别名.
  `@NotNull String`
  `getName()`
  返回这个命令的名称.
  `@Nullable String`
  `getPermission()`
  获取用户执行此命令所需的权限.
  `@Nullable String`
  `getPermissionMessage()`
  已过时。
  自1.13版本, 权限消息对玩家执行的命令已不再可用, 因为没有执行相关命令的权限的客户端不知晓其存在性, 因此不会向服务端发送执行的命令.
  `@NotNull String`
  `getUsage()`
  获取这个命令的用法示例.
  `boolean`
  `isRegistered()`
  返回这个命令的注册状态.
  `boolean`
  `register(@NotNull CommandMap commandMap)`
  把这个命令注册给一个CommandMap.
  `@NotNull Command`
  `setAliases(@NotNull List<String> aliases)`
  设置这个命令的别名.
  `@NotNull Command`
  `setDescription(@NotNull String description)`
  设置此命令的简介.在`PluginDescriptionFile.getCommands()`的 `description` 节点上定义介绍与本方法是等效的.
  `boolean`
  `setLabel(@NotNull String name)`
  设置这个命令的别名.
  `boolean`
  `setName(@NotNull String name)`
  设置这个命令的名称.
  `void`
  `setPermission(@Nullable String permission)`
  设置用户执行此命令所需的权限.
  `@NotNull Command`
  `setPermissionMessage(@Nullable String permissionMessage)`
  已过时。
  自1.13版本, 权限消息对玩家执行的命令已不再可用, 因为没有执行相关命令的权限的客户端不知晓其存在性, 因此不会向服务端发送执行的命令.
  `@NotNull Command`
  `setUsage(@NotNull String usage)`
  设置这个命令的用法示例.
  `@NotNull List<String>`
  `tabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args)`
  对此命令进行tab补全并返回补全项列表.
  `@NotNull List<String>`
  `tabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args, @Nullable Location location)`
  对此命令进行tab补全并返回补全项列表.
  `boolean`
  `testPermission(@NotNull CommandSender target)`
  测试给定的`CommandSender`能否执行此命令.
  `boolean`
  `testPermissionSilent(@NotNull CommandSender target)`
  测试给定的`CommandSender`能否执行这个命令.
  `String`
  `toString()`
  `boolean`
  `unregister(@NotNull CommandMap commandMap)`
  从给定的 CommandMap 中注销此命令, 并应用所有未完成的更改.

  ### 从类继承的方法 java.lang.Object

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

- ## 字段详细资料

  - ### description

    protected String description

  - ### usageMessage

    protected String usageMessage

  - ### timings

    public CustomTimingsHandler timings

- ## 构造器详细资料

  - ### Command

    protected Command(@NotNull @NotNull String name)

  - ### Command

    protected Command(@NotNull @NotNull String name, @NotNull @NotNull String description, @NotNull @NotNull String usageMessage, @NotNull @NotNull List<String> aliases)

- ## 方法详细资料

  - ### execute

    public abstract boolean execute(@NotNull @NotNull CommandSender sender, @NotNull @NotNull String commandLabel, @NotNull @NotNull String[] args)
    执行命令.

    原文：Executes the command, returning its success

    参数:
      `sender` - 执行此命令的对象
      `commandLabel` - 执行命令所用的别名
      `args` - 传递给此命令的所有参数，用' '分割
    返回:
      如果命令执行成功则为true，false反之

  - ### tabComplete

    @NotNull public @NotNull List<String> tabComplete(@NotNull @NotNull CommandSender sender, @NotNull @NotNull String alias, @NotNull @NotNull String[] args) throws IllegalArgumentException
    对此命令进行tab补全并返回补全项列表.

    原文：Executed on tab completion for this command, returning a list of options the player can tab through.

    参数:
      `sender` - 执行此命令的对象
      `alias` - 执行命令所用的别名
      `args` - 传递给此命令的所有参数，用' '分割
    返回:
      指定参数的tab补全项列表.列表永远不会为null. 列表可能是不可变的.
    抛出:
      `IllegalArgumentException` - 如果sender, alias, args任意一参数为null

  - ### tabComplete

    @NotNull public @NotNull List<String> tabComplete(@NotNull @NotNull CommandSender sender, @NotNull @NotNull String alias, @NotNull @NotNull String[] args, @Nullable @Nullable Location location) throws IllegalArgumentException
    对此命令进行tab补全并返回补全项列表.

    原文：Executed on tab completion for this command, returning a list of options the player can tab through.

    参数:
      `sender` - 执行此命令的对象
      `alias` - 执行命令所用的别名
      `args` - 传递给此命令的所有参数，用' '分割
      `location` - 执行此命令对象所在的坐标，当无法获取命令执行者的坐标时该参数为null
    返回:
      指定参数的tab补全项列表.列表永远不会为null. 列表可能是不可变的.
    抛出:
      `IllegalArgumentException` - 如果参数sender, alias或args为null

  - ### getName

    @NotNull public @NotNull String getName()
    返回这个命令的名称.

    原文:Returns the name of this command

    返回:
      这个命令的名称

  - ### setName

    public boolean setName(@NotNull @NotNull String name)
    设置这个命令的名称.

    只能在注册之前使用本方法.

    如果成功设置新的名称将返回true，命令已被注册返回false.

    原文: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.

    参数:
      `name` - 新的命令名称
    返回:
      如果新的名称被更改返回true，命令已被注册返回false

  - ### getPermission

    @Nullable public @Nullable String getPermission()
    获取用户执行此命令所需的权限.

    原文:Gets the permission required by users to be able to perform this command

    返回:
      权限名，未指定权限则为null

  - ### setPermission

    public void setPermission(@Nullable @Nullable String permission)
    设置用户执行此命令所需的权限.

    原文:Sets the permission required by users to be able to perform this command

    参数:
      `permission` - 权限名，无需任何权限则为null

  - ### testPermission

    public boolean testPermission(@NotNull @NotNull CommandSender target)
    测试给定的`CommandSender`能否执行此命令.

    如果他们没有权限，将提示他们无权执行此命令.

    原文：Tests the given `CommandSender` to see if they can perform this command.

    If they do not have permission, they will be informed that they cannot do this.

    参数:
      `target` - 要测试的用户
    返回:
      如果他们有权限则为true，false反之

  - ### testPermissionSilent

    public boolean testPermissionSilent(@NotNull @NotNull CommandSender target)
    测试给定的`CommandSender`能否执行这个命令.

    此方法不会给sender发送错误消息.

    原文:Tests the given `CommandSender` to see if they can perform this command.

    No error is sent to the sender.

    参数:
      `target` - 要测试的用户
    返回:
      他们能不能使用命令

  - ### getLabel

    @NotNull public @NotNull String getLabel()
    返回这个命令的别名.

    原文:Returns the label for this command

    返回:
      这个命令的别名

  - ### setLabel

    public boolean setLabel(@NotNull @NotNull String name)
    设置这个命令的别名.

    只能在注册之前使用本方法.

    如果成功设置新的别名将返回true，命令已被注册则返回false.

    原文：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.

    参数:
      `name` - 新的命令别名
    返回:
      如果新的别名被更改返回true，命令已被注册则返回false

  - ### register

    public boolean register(@NotNull @NotNull CommandMap commandMap)
    把这个命令注册给一个CommandMap.

    若此命令已经注册给某个 CommandMap, 则无法再注册给别的 CommandMap, 只能修改注册过的 CommandMap.

    原文：Registers this command to a CommandMap. Once called it only allows changes the registered CommandMap

    参数:
      `commandMap` - 注册此命令给这个CommandMap
    返回:
      如果注册成功则为true(当前注册的CommandMap是传递的CommandMap或null)，false反之

  - ### unregister

    public boolean unregister(@NotNull @NotNull CommandMap commandMap)
    从给定的 CommandMap 中注销此命令, 并应用所有未完成的更改.

    原文：Unregisters this command from the passed CommandMap applying any outstanding changes

    参数:
      `commandMap` - 指定的CommandMap
    返回:
      如果成功注销则为true(当前注册的CommandMap是传递的CommandMap或null)，false反之

  - ### isRegistered

    public boolean isRegistered()
    返回这个命令的注册状态.

    原文:Returns the current registered state of this command

    返回:
      这个命令当前是否已注册

  - ### getAliases

    @NotNull public @NotNull List<String> getAliases()
    返回这个命令激活的别名列表.

    原文:Returns a list of active aliases of this command

    返回:
      别名列表

  - ### getPermissionMessage

    @Deprecated @Nullable public @Nullable String getPermissionMessage()
    已过时。
    自1.13版本, 权限消息对玩家执行的命令已不再可用, 因为没有执行相关命令的权限的客户端不知晓其存在性, 因此不会向服务端发送执行的命令. 此消息将只能在控制台上看到, 或命令使用 `Bukkit.dispatchCommand(CommandSender, String)` 执行时也能看到.
    返回当没有这个命令的权限时显示的消息.

    原文:Returns a message to be displayed on a failed permission check for this command

    返回:
      无权提示消息

  - ### getDescription

    @NotNull public @NotNull String getDescription()
    获取这个命令的简介.

    原文:Gets a brief description of this command

    返回:
      命令简介

  - ### getUsage

    @NotNull public @NotNull String getUsage()
    获取这个命令的用法示例.

    原文:Gets an example usage of this command

    返回:
      一个或多个用法示例

  - ### setAliases

    @NotNull public @NotNull Command setAliases(@NotNull @NotNull List<String> aliases)
    设置这个命令的别名. 如果别名未在 plugin.yml 中 commands 节点下的 aliases 节点定义, 则操作无效.

    原文:Sets the list of aliases to request on registration for this command. This is not effective outside of defining aliases in the `PluginDescriptionFile.getCommands()` (under the ``aliases`' node) is equivalent to this method.

    参数:
      `aliases` - 要为这个命令注册的别名
    返回:
      这个命令对象，可用于链式调用

  - ### setDescription

    @NotNull public @NotNull Command setDescription(@NotNull @NotNull String description)
    设置此命令的简介.在`PluginDescriptionFile.getCommands()`的 `description` 节点上定义介绍与本方法是等效的.

    原文：Sets a brief description of this command. Defining a description in the `PluginDescriptionFile.getCommands()` (under the ``description`' node) is equivalent to this method.

    参数:
      `description` - 新的命令介绍
    返回:
      这个命令对象，可用于链式调用

  - ### setPermissionMessage

    @Deprecated @NotNull public @NotNull Command setPermissionMessage(@Nullable @Nullable String permissionMessage)
    已过时。
    自1.13版本, 权限消息对玩家执行的命令已不再可用, 因为没有执行相关命令的权限的客户端不知晓其存在性, 因此不会向服务端发送执行的命令. 此消息将只能在控制台上看到, 或命令使用 `Bukkit.dispatchCommand(CommandSender, String)` 执行时也能看到.
    设置当没有这个命令的权限时发送的消息.

    原文：Sets the message sent when a permission check fails

    参数:
      `permissionMessage` - 新的无权提示消息，null表示默认消息，空字符串表示没有提示消息
    返回:
      这个命令对象，可用于链式调用

  - ### setUsage

    @NotNull public @NotNull Command setUsage(@NotNull @NotNull String usage)
    设置这个命令的用法示例.

    原文:Sets the example usage of this command

    参数:
      `usage` - 新的用法示例
    返回:
      命令对象

  - ### broadcastCommandMessage

    public static void broadcastCommandMessage(@NotNull @NotNull CommandSender source, @NotNull @NotNull String message)

  - ### broadcastCommandMessage

    public static void broadcastCommandMessage(@NotNull @NotNull CommandSender source, @NotNull @NotNull String message, boolean sendToSource)

  - ### toString

    public String toString()
    覆盖:
      `toString` 在类中 `Object`