程序包 org.bukkit.event.server

# 类 ServerCommandEvent

java.lang.Object
org.bukkit.event.Event
org.bukkit.event.server.ServerEvent
org.bukkit.event.server.ServerCommandEvent

所有已实现的接口:
  `Cancellable`

直接已知子类:
  `RemoteServerCommandEvent`

public class ServerCommandEvent extends ServerEvent implements Cancellable
这个事件当服务器后台发送指令时调用. 本事件在命令处理早期被调用, 并且在本事件进行一些修改 (比如`setCommand(String)`) 会影响后续的事件.

很多插件都不使用此事件.如果这个事件不是必要的,你应该尽量避免使用它!

正确使用该事件的示例如下:

- 将执行的命令记录在一个单独的文件里
- 变量替换.例如，用玩家Steve的ip替换`${ip:Steve}`，或者模拟`@a`和`@p`作为装饰命令方块，插件不处理它.
- 有条件地阻止其它插件的命令.
- 为个人命令发送者注册命令别名.例如，在控制台运行命令`/calias cr gamemode creative`后，下一次运行命令`/cr`，它将会被替换成`/gamemode creative`(全局命令别名应该通过注册的别名来完成)

不正确使用该事件的示例如下:

- 使用该事件来运行命令逻辑

如果事件被取消,处理命令将停止.

无论消息开头是否含`"/"`, 都应保持其原样. 如果手动添加或删除`"/"`, 可能会导致一些意外结果.

- ## 嵌套类概要

  ## 从类继承的嵌套类/接口 org.bukkit.event.Event

  `Event.Result`

- ## 构造器概要

  构造器
  构造器
  说明
  `ServerCommandEvent(@NotNull CommandSender sender, @NotNull String command)`

- ## 方法概要

  修饰符和类型
  方法
  说明
  `@NotNull String`
  `getCommand()`
  得到从控制台执行的命令(触发这个事件的命令).
  `static @NotNull HandlerList`
  `getHandlerList()`
  `@NotNull HandlerList`
  `getHandlers()`
  `@NotNull CommandSender`
  `getSender()`
  得到命令发送者(后台).
  `boolean`
  `isCancelled()`
  获取这个事件是否被取消.一个被取消的事件不会在服务器里执行，但是仍然会传递事件到其他插件.
  `void`
  `setCancelled(boolean cancel)`
  取消这个事件.
  `void`
  `setCommand(@NotNull String message)`
  设置将要执行的命令.

  ### 从类继承的方法 org.bukkit.event.Event

  `getEventName, isAsynchronous`

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

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

- ## 构造器详细资料

  - ### ServerCommandEvent

    public ServerCommandEvent(@NotNull @NotNull CommandSender sender, @NotNull @NotNull String command)

- ## 方法详细资料

  - ### getCommand

    @NotNull public @NotNull String getCommand()
    得到从控制台执行的命令(触发这个事件的命令).

    原文:Gets the command that the user is attempting to execute from the console

    返回:
      尝试执行的命令

  - ### setCommand

    public void setCommand(@NotNull @NotNull String message)
    设置将要执行的命令.

    原文:Sets the command that the server will execute

    参数:
      `message` - 控制台将会执行的命令

  - ### getSender

    @NotNull public @NotNull CommandSender getSender()
    得到命令发送者(后台).

    原文:Get the command sender.

    返回:
      发送者

  - ### getHandlers

    @NotNull public @NotNull HandlerList getHandlers()
    指定者:
      `getHandlers` 在类中 `Event`

  - ### getHandlerList

    @NotNull public static @NotNull HandlerList getHandlerList()

  - ### isCancelled

    public boolean isCancelled()
    从接口复制的说明: `Cancellable`
    获取这个事件是否被取消.一个被取消的事件不会在服务器里执行，但是仍然会传递事件到其他插件.

    原文：Gets the cancellation state of this event. A cancelled event will not be executed in the server, but will still pass to other plugins

    指定者:
      `isCancelled` 在接口中 `Cancellable`
    返回:
      如果事件已经被取消，则为true

  - ### setCancelled

    public void setCancelled(boolean cancel)
    从接口复制的说明: `Cancellable`
    取消这个事件. 一个被取消的事件不会在 服务器里执行，但是仍然会传递事件到其他插件.

    原文：Sets the cancellation state of this event. A cancelled event will not be executed in the server, but will still pass to other plugins.

    指定者:
      `setCancelled` 在接口中 `Cancellable`
    参数:
      `cancel` - 如果你想取消这个事件，则为true