MiraiForum

    • Register
    • Login
    • Search
    • Popular
    • Recent
    • Unsolved
    • Tags
    • Groups
    • 友情链接

    SubCommand未响应群消息,但可响应控制台输入

    开发交流
    2
    2
    376
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      hundun000 ⭐2021⭐ last edited by

      以前只开发过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的最常用用法,或是我理解有误)?

      1 Reply Last reply Reply Quote 0
      • Him188
        Him188 last edited by

        使用chat-command插件

        1 Reply Last reply Reply Quote 0
        • 1 / 1
        • First post
          Last post
        Powered by Mamoe Technologies & NodeBB | 友情链接 | 服务监控 | Contact