executeCommand
open suspend fun executeCommand(caller: CommandSender, message: Message, checkPermission: Boolean = true): CommandExecuteResult
解析并执行一个指令.
指令解析流程
message 的第一个消息元素的 内容 被作为指令名, 在已注册指令列表中搜索. (包含 Command.prefixOptional 相关的处理)
参数语法分析. 在当前的实现下, message 被以空格和 SingleMessage 分割. 如 "MessageChain("foo bar", Image, " test")" 被分割为 "foo", "bar", Image, "test". 注意: 字符串与消息元素之间不需要空格, 会被强制分割. 如 "barmirai:image:" 会被分割为 "bar" 和 Image 类型的消息元素.
参数解析. 各类型指令实现不同. 详见 RawCommand, CompositeCommand, SimpleCommand
扩展
参数语法分析过程可能会被扩展, 插件可以自定义处理方式 (CommandCallParser), 因此可能不会简单地使用空格分隔.
Return
执行结果
Parameters
message
一条完整的指令. 如 "/managers add 123456.123456"
checkPermission
为 true
时检查权限
See also
open suspend fun executeCommand(sender: CommandSender, command: Command, arguments: Message = emptyMessageChain(), checkPermission: Boolean = true): CommandExecuteResult
执行一个确切的指令
Parameters
command
目标指令
arguments
参数列表