MiraiForum

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

    想询问一下如何在mirai-console中主动去发送信息到群或者好友?

    开发交流
    2
    6
    95
    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.
    • KJZH001
      KJZH001 童心未泯 last edited by

      从官方文档中可以了解到

      获取联系人对象
      Bot.getFriends(),Bot.getGroups() 等方法可以获取到对象列表。
      
      可通过 Bot.getFriend, Bot.getGroup,Bot.getStranger 以 QQ 号或群号主动获取某个对象。
      
      可以通过事件被动获取 (后文介绍)。
      

      这是属于mirai core部分的文档,也就是说我需要能够取得bot对象才行

      目前我在插件中单独定义了一个类,并且在插件加载时完成实列化对象,然后需要在这个对象中主动的去向特定的好友和群发送消息

      对于被动事件,我此前都是采用SimpleListenerHost来被动获取的,并且由于java和kt确实比较菜,所以想不到在插件里怎么主动拿到联系人对象去发消息

      请问我该如何取得联系人对象呢?谢谢

      1 Reply Last reply Reply Quote 0
      • MrXiaoM
        MrXiaoM 童心未泯 last edited by

        //kotlin
        val bot = Bot.getInstance(114514L)
        val group = bot.getGroup(1919810L)
        //以此类推
        
        //java
        Bot bot = Bot.getInstance(114514L);
        Group group = bot.getGroup(1919810L);
        //以此类推
        
        KJZH001 1 Reply Last reply Reply Quote 0
        • KJZH001
          KJZH001 童心未泯 @MrXiaoM last edited by

          @MrXiaoM 感谢,原来这样就行了啊

          1 Reply Last reply Reply Quote 0
          • KJZH001
            KJZH001 童心未泯 last edited by

            不过现在的话又遇到了一个新的问题
            ···
            @Throws(IOException::class)
            override suspend fun handle(exchange: HttpExchange)
            ···
            idea提示sendmessage需要suspend,但是上面的这个被快速修复加上了suspend之后又产生了另外一个报错

            Conflicting overloads: public open suspend fun handle(exchange: HttpExchange): Unit defined in tech.moeworld.moekaicore.webHookHandler, public abstract fun handle(exchange: HttpExchange!): Unit defined in com.sun.net.httpserver.HttpHandler
            

            请问各位大佬们这个怎么解决呢?

            MrXiaoM 1 Reply Last reply Reply Quote 0
            • MrXiaoM
              MrXiaoM 童心未泯 @KJZH001 last edited by

              @KJZH001 重载冲突,tech.moeworld.moekaicore.webHookHandler 和 com.sun.net.httpserver.HttpHandler 里面有两个函数名相同,参数相同的函数,编译器不知道要重载哪个

              KJZH001 1 Reply Last reply Reply Quote 0
              • KJZH001
                KJZH001 童心未泯 @MrXiaoM last edited by

                @MrXiaoM 感谢,不过别人给了我一个别的解决办法
                将那个出错的suspend去掉
                然后用下面的格式包装一下sendmessage就好了

                plugin.launch {
                 //send messages...
                }
                

                这也算是给后面来的人留下个答案吧(滑稽)

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