MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接

    已解决 [Kotlin]请问各位在使用CompositeCommand时调用其它方法如何传入GroupMessageEvent

    开发交流
    2
    9
    600
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • Nekoer
      Nekoer 摸鱼 最后由 编辑

      请问各位在使用CompositeCommand时调用其它方法如何传入GroupMessageEvent

      1 条回复 最后回复 回复 引用 1
      • Karlatemp
        Karlatemp 最后由 编辑

        Console 本身与 bot 无关, console 也不靠 core 消息事件驱动, console也不实现 MemberCommandSenderOnMessage, 在脱离 bot 上下文的环境下你需要使用 Bot.getInstance() / Bot.instances.

        CommandSenderOnMessage 的注释写的很清楚, 只有该命令的触发者是来自在线聊天环境的时候 sender 才会实现 CommandSenderOnMessage, console 本身与在线聊天环境没有任何关系

        Nekoer 1 条回复 最后回复 回复 引用 0
        • Karlatemp
          Karlatemp 最后由 编辑

          https://github.com/mamoe/mirai-console/discussions/292

          Nekoer 1 条回复 最后回复 回复 引用 0
          • Nekoer
            Nekoer 摸鱼 @Karlatemp 最后由 编辑

            @karlatemp 通过命令行启动一个功能,然后向指定群发送消息,但是这个过程中获取到的机器人对象为null

            1 条回复 最后回复 回复 引用 0
            • Karlatemp
              Karlatemp 最后由 编辑

              您的问题描述不清楚,我无法理解您在问什么

              Nekoer 1 条回复 最后回复 回复 引用 0
              • Nekoer
                Nekoer 摸鱼 @Karlatemp 最后由 Nekoer 编辑

                @karlatemp 在console中输入/xxx start后,无论是

                val event = (this as? CommandSenderOnMessage<*>)?.fromEvent
                

                还是

                val event = (this as? MemberCommandSenderOnMessage)?.fromEvent
                

                event.bot获取都是null

                1 条回复 最后回复 回复 引用 0
                • Karlatemp
                  Karlatemp 最后由 编辑

                  console与bot无关

                  Nekoer 1 条回复 最后回复 回复 引用 0
                  • Nekoer
                    Nekoer 摸鱼 @Karlatemp 最后由 Nekoer 编辑

                    @karlatemp

                    插件依赖2.7-M2
                    从console发送/xxx start启动一个功能 =>

                        @SubCommand("start","启动")
                        suspend fun CommandSender.start() {
                             val event = (this as? MemberCommandSenderOnMessage)?.fromEvent
                             xxx(event)
                             这里输出event为null
                             这里需要调用方法,这个方法会向指定的QQ群发送消息
                        }
                    

                    这个方法需要先判断是否是我需要的群,然后发送消息
                    所以我这里需要获取机器人的所有群的list。
                    这时候传进来的event无法获取所有群的list,event本身为null

                    1 条回复 最后回复 回复 引用 0
                    • Karlatemp
                      Karlatemp 最后由 编辑

                      Console 本身与 bot 无关, console 也不靠 core 消息事件驱动, console也不实现 MemberCommandSenderOnMessage, 在脱离 bot 上下文的环境下你需要使用 Bot.getInstance() / Bot.instances.

                      CommandSenderOnMessage 的注释写的很清楚, 只有该命令的触发者是来自在线聊天环境的时候 sender 才会实现 CommandSenderOnMessage, console 本身与在线聊天环境没有任何关系

                      Nekoer 1 条回复 最后回复 回复 引用 0
                      • Nekoer
                        Nekoer 摸鱼 @Karlatemp 最后由 编辑

                        @karlatemp 非常感谢XD

                        1 条回复 最后回复 回复 引用 0
                        • 1 / 1
                        • First post
                          Last post
                        Powered by Mamoe Technologies & NodeBB | 友情链接 | 服务监控 | Contact