命令管理器
命令管理器,即 CommandManager 用于监视用户在聊天框中输入的命令,并将其重定向到正确的命令处理代码。你需要使用 CommandManager#register(Object, CommandCallable, String…) 方法,并传入插件的实例、命令的实例、以及所有需要作为命令的别名的字符串,以注册你想要注册的命令。
一般情况下你应在 GameInitializationEvent 发布时注册命令。
import org.spongepowered.api.Sponge;
import org.spongepowered.api.command.CommandManager;
PluginContainer plugin = ...;
CommandManager cmdManager = Sponge.getCommandManager();
cmdManager.register(plugin, myCommandSpec, "alias1", "alias2", "alias3");
注解
命令的实例后的参数就是待注册的命令的所有别名。你可以添加任意多的字符串。没有被其他命令占用的第一个别名将成为命令的主名称。这意味着已被其他命令占用的别名会被忽略。
CommandManager
也可以以可编程的方式调用一个命令:
cmdManager.process(player, "msg Notch hi notch!");
你也可以以服务端控制台的身份发送一个命令:
cmdManager.process(Sponge.getServer().getConsole(), "kill Notch");