类 Command

java.lang.Object
org.bukkit.command.Command
直接已知子类:
BukkitCommand, FormattedCommandAlias, MultipleCommandAlias, PluginCommand

public abstract class Command extends Object
代表一个命令,在用户输入时执行各种任务.
  • 字段详细资料

    • description

      protected String description
    • usageMessage

      protected String usageMessage
  • 构造器详细资料

  • 方法详细资料

    • execute

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

      原文:Executes the command, returning its success

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

      public List<String> tabComplete(CommandSender sender, String alias, 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

      public List<String> tabComplete(CommandSender sender, String alias, String[] args, 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 - The position looked at by the sender, or null if none (不懂,且依源码看,该参数无任何作用,可以传null)
      返回:
      指定参数的tab补全项列表.这将永远不会为null. 列表可能是不可变的
      抛出:
      IllegalArgumentException - 如果参数sender, alias或args为null
    • getName

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

      原文:Returns the name of this command

      返回:
      这个命令的名称
    • setName

      public boolean setName(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

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

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

      返回:
      权限名,没有为null
    • setPermission

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

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

      参数:
      permission - 权限名,或者为null
    • testPermission

      public boolean testPermission(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(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

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

      原文:Returns the label for this command

      返回:
      这个命令的别名
    • setLabel

      public boolean setLabel(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(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(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

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

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

      返回:
      别名列表
    • getPermissionMessage

      public String getPermissionMessage()
      返回当没有这个命令的权限时显示的消息.

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

      返回:
      无权提示消息
    • getDescription

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

      原文:Gets a brief description of this command

      返回:
      命令简介
    • getUsage

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

      原文:Gets an example usage of this command

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

      public Command setAliases(List<String> aliases)
      设置这个命令的别名. 若没在PluginDescriptionFile.getCommands()aliases 节点定义(就是没在plugin.yml定义)将没有效果,与此等效.

      译注:不懂原文第二段在说什么,根据源代码,aliases一定会赋值给这个类的aliases成员变量,如果这个命令还没有注册,aliases同样会赋值给这个类的activeAliases成员变量.第二段的意思整理为如果没在plugin.yml定义命令别名这个方法不会有效果.

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

      public Command setDescription(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

      public Command setPermissionMessage(String permissionMessage)
      设置当没有这个命令的权限时发送的消息.

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

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

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

      原文:Sets the example usage of this command

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

      public static void broadcastCommandMessage(CommandSender source, String message)
    • broadcastCommandMessage

      public static void broadcastCommandMessage(CommandSender source, String message, boolean sendToSource)
    • toString

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