SubCommand未响应群消息,但可响应控制台输入
-
以前只开发过ListenerHost,第一次开发Command。
在mirai-console文档示例有:
@OptIn(ConsoleExperimentalAPI::class) object MyCompositeCommand : CompositeCommand( MyPluginMain, "manage", // "manage" 是主指令名 description = "示例指令", permission = MyCustomPermission, // prefixOptional = true // 还有更多参数可填, 此处忽略 ) { // [参数智能解析] // // 在控制台执行 "/manage <群号>.<群员> <持续时间>", // 或在聊天群内发送 "/manage <@一个群员> <持续时间>", // 或在聊天群内发送 "/manage <目标群员的群名> <持续时间>", // 或在聊天群内发送 "/manage <目标群员的账号> <持续时间>" // 时调用这个函数 @SubCommand // 表示这是一个子指令,使用函数名作为子指令名称 suspend fun CommandSender.mute(target: Member, duration: Int) { // 通过 /manage mute <target> <duration> 调用 …………
我已经写了
CommandManager.INSTANCE.registerCommand();
,故我已经可以在控制台使用我的SubCommand了。若想实现注释里说的“聊天群内发送 XXX 时调用这个函数”,还需要做什么工作呢?我没有在文档里看到。我了解到或许以下方案可以做到:
- 使用chat-command插件
- 在消息事件监听中执行命令。
然而我预期的是,只需要一行代码来声明"这个Command需要响应群消息"。这样的功能存在吗(因为按我的理解这是Command的最常用用法,或是我理解有误)?
-
使用chat-command插件