命令管理器

命令管理器,即 CommandManager 用于监视用户在聊天框中输入的命令,并将其重定向到正确的命令处理代码。你需要使用 CommandManager#register(Object, CommandCallable, String…) 方法,并传入插件的实例、命令的实例、以及所有需要作为命令的别名的字符串,以注册你想要注册的命令。

通常情况下,你应该在 GameInitializationEvent 触发时注册你的命令。如果你在你的插件主类注册的话,可以直接使用 this 以传入插件的实例。

import org.spongepowered.api.Sponge;
import org.spongepowered.api.command.CommandManager;

CommandManager cmdManager = Sponge.getCommandManager();
cmdManager.register(this, myCommandSpec, "alias1", "alias2", "alias3");

注解

命令的实例后的参数就是待注册的命令的所有别名。你可以添加任意多的字符串。没有被其他命令占用的第一个别名将成为命令的主名称。这意味着已被其他命令占用的别名会被忽略。

CommandManager 也可以以可编程的方式调用一个命令:

cmdManager.process(player, "msg Notch hi notch!");

你也可以以服务端控制台的身份发送一个命令:

cmdManager.process(Sponge.getServer().getConsole(), "kill Notch");