MiraiForum

    • Register
    • Login
    • Search
    • Popular
    • Recent
    • Unsolved
    • Tags
    • Groups
    • 友情链接
    1. Home
    2. MrXiaoM
    3. Best
    • Profile
    • Following 9
    • Followers 39
    • Topics 37
    • Posts 864
    • Best 206
    • Controversial 0
    • Groups 5

    Best posts made by MrXiaoM

    • RE: 面向新人的 mirai 开发/使用文档

      @imldy 其实这个地方的 xwx 是乱写的(
      在这段的前面我告诉在文档阅读者,之后消息通道都会用 channel 代替了,然后下面这里给出了替换的示例,那个地方没加粗,好像在粗读的时候很难看到,以后改

      posted in 开发交流
      MrXiaoM
      MrXiaoM
    • 获取回复消息(QuoteReply)指向原文的实现思路

      总所周知,腾讯服务器给你返回的 QuoteReply 的源消息并不是富文本消息,也就是说,图片会“退化”为[图片]等等。如果我们想做回复消息搜图之类的功能,这给我们带来了比较多的麻烦。

      但是,我们可以取到源消息的 MessageSource,只要你本地存了聊天记录,就能够通过 MessageSource 获取相应消息。按照这个思路,我们只要跟QQ客户端一样,把消息存到本地,需要时获取即可。

      具体实现

      本帖中将使用 Mirai Hibernate Plugin 插件储存聊天记录,演示获取回复消息原文的方法。

      引用依赖

      // build.gradle(.kts)
      
      repositories {
          mavenCentral()
      }
      
      dependencies {
          compileOnly("xyz.cssxsh.mirai:mirai-hibernate-plugin:依赖版本")
      }
      
      // hibernate 6 和 HikariCP 5 需要 jdk11
      mirai {
          jvmTarget = JavaVersion.VERSION_11
      }
      
      //author("MrXiaoM")
      // 在主类插件信息处声明插件依赖关系
      dependsOn("xyz.cssxsh.mirai.plugin.mirai-hibernate-plugin", false)
      

      Kotlin

      val QuoteReply.originalMessageFromLocal: MessageChain
          get() = MiraiHibernateRecorder[source].firstOrNull()?.toMessageChain() ?: source.originalMessage
      
      // 使用示例
      @EventHandler
      fun GroupMessageEvent.listen() {
          // 检测回复消息
          message[QuoteReply.Key]?.run { 
              val original = originalMessageFromLocal
              // do sth.
          }
      }
      

      Java

          public static MessageChain getOriginalMessageFromLocal(QuoteReply quote) {
              Optional<MessageRecord> record = MiraiHibernateRecorder.INSTANCE.get(quote.getSource()).stream().findFirst();
              return record.map(MessageRecord::toMessageChain).orElseGet(() -> quote.getSource().getOriginalMessage());
          }
          // 使用示例
          @EventHandler
          public void onGroupMessage(GroupMessageEvent event) {
              // 检测回复消息
              QuoteReply quote = event.getMessage().get(QuoteReply.Key);
              if (quote != null) {
                  MessageChain original = getOriginalMessageFromLocal(quote);
                  // do sth.
              }
          }
      
      posted in 技术交流板块
      MrXiaoM
      MrXiaoM
    • RE: E/main: Failed to init MiraiConsole.

      不要的眼睛可以捐给别人,1.3.0 的更新日志说得很清楚了

      此版本仅供参考,无法使用,如需正常使用,请使用 1.2.0-beta 中的发布

      posted in BUG反馈
      MrXiaoM
      MrXiaoM
    • RE: 【每日沙雕图】沙雕小别墅

      右手定则.png

      posted in 摸鱼区
      MrXiaoM
      MrXiaoM
    • RE: 讨论一下一个插件需求应该满足的规范

      agree
      按情况应该还需要加上使用库、依赖之类的
      不会真的有开发者不给出依赖吧

      posted in 开发交流
      MrXiaoM
      MrXiaoM
    • RE: 想问一下现在大家都是怎么debug插件的

      目前我是将签名服务相关插件加进 debug-sandbox 里,设置好自动登录并禁用该自动登录配置,需要时 /login QQ号 不用输密码登录小号测试,并且尽量少登录。

      posted in 技术交流板块
      MrXiaoM
      MrXiaoM
    • RE: 今天你写代码了吗?

      明天一定写

      posted in 摸鱼区
      MrXiaoM
      MrXiaoM
    • RE: 发送消息时的长度限制怎么处理呢?

      @404-Error 我没at过100个人,我不知道。
      最好分开发

      posted in 开发交流
      MrXiaoM
      MrXiaoM
    • RE: AntiSetu --- 群内反涩图插件

      @edgestar2020 配置文件类里有个“threshold”,通过阅读源代码可知应该是分数大于或等于这个数值才会进行通知等操作

      posted in 插件发布
      MrXiaoM
      MrXiaoM
    • Mirai 摸鱼&开发交流群 非官方

      如果你在玩 mirai 途中遇到问题可以尝试加群 1047497524 询问以快速得到答案。
      不要问有没有人,不要不贴截图,不要笼统提问,不要高血压提问,我谢谢你。

      本群有以下要素

      • 转载高血压图片
      • 超超猫猫
      • 版本过低滚去论坛看223
      • 除了mirai以外什么都聊
      • 更新进度放送
      posted in 摸鱼区
      MrXiaoM
      MrXiaoM
    • RE: 新的扫码登陆如果掉线了可以像之前账密一样直接拉起来吗

      @gaizi001 你把机器人的设备信息和缓存文件路径固定好,只有第一次登录需要扫码,之后请求扫码登录只要缓存没失效都会自动调缓存来登录。

      posted in 开发交流
      MrXiaoM
      MrXiaoM
    • RE: AntiSetu --- 群内反涩图插件

      @rainchan 建议直接上 lolicon api 抓图(

      posted in 插件发布
      MrXiaoM
      MrXiaoM
    • RE: 【每日沙雕图】沙雕小别墅

      -4745ec2de012eef8.jpg

      posted in 摸鱼区
      MrXiaoM
      MrXiaoM
    • RE: FixProtocolVersion 异常 Caused by: java.lang.ClassNotFoundException: xyz.cssxsh.mirai.tool.FixProtocolVersion

      检查

      • 运行时是否已依赖 fix-protocol-version
      • java 版本是否大于等于 11
      posted in 开发交流
      MrXiaoM
      MrXiaoM
    • RE: 百度云 文件同步/备份 插件, 可作为前置插件调用百度云API

      你 releases 没附加的文件
      懂了,让他们自己编译(
      哦现在已经上传文件了,那没事了。
      只要是能热备份的功能我都举双手双脚支持

      posted in 插件发布
      MrXiaoM
      MrXiaoM
    • RE: 有大佬开发个 需要签到 才能群聊的吗?

      @Kallen 我猜是从未签到过的人需要发送签到来进行签到否则聊天就会自动撤回()

      posted in 摸鱼区
      MrXiaoM
      MrXiaoM
    • RE: 如何 进行 get 或 post 方法请求啊

      post you logs please

      posted in 开发交流
      MrXiaoM
      MrXiaoM
    • RE: 简单的Rss订阅插件 已添加RssHub支持 番剧订阅Bt种子自动上传

      @Moon1995 噢我的上帝啊,为什么不使用开源免费还不用登录查看的 pastebin.pl 呢
      好吧我找的这个过不去验证码()
      啊,找到了,moz://a 在线剪贴板:https://pastebin.mozilla.org/

      posted in 插件发布
      MrXiaoM
      MrXiaoM
    • RE: 【每日沙雕图】沙雕小别墅

      -2908bbeffe4117bd.jpg

      posted in 摸鱼区
      MrXiaoM
      MrXiaoM
    • RE: 现在还有插件的模板吗?

      @Rail1bc 只支持 gradle 8.0 以下版本

      posted in 开发交流
      MrXiaoM
      MrXiaoM
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 10
    • 11
    • 4 / 11