@imldy 其实这个地方的 xwx 是乱写的(
在这段的前面我告诉在文档阅读者,之后消息通道都会用 channel
代替了,然后下面这里给出了替换的示例,那个地方没加粗,好像在粗读的时候很难看到,以后改
Best posts made by MrXiaoM
-
RE: 面向新人的 mirai 开发/使用文档
-
获取回复消息(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. } }
-
RE: E/main: Failed to init MiraiConsole.
不要的眼睛可以捐给别人,1.3.0 的更新日志说得很清楚了
此版本仅供参考,无法使用,如需正常使用,请使用 1.2.0-beta 中的发布
-
RE: 想问一下现在大家都是怎么debug插件的
目前我是将签名服务相关插件加进 debug-sandbox 里,设置好自动登录并禁用该自动登录配置,需要时
/login QQ号
不用输密码登录小号测试,并且尽量少登录。 -
RE: AntiSetu --- 群内反涩图插件
@edgestar2020 配置文件类里有个“threshold”,通过阅读源代码可知应该是分数大于或等于这个数值才会进行通知等操作
-
Mirai 摸鱼&开发交流群 非官方
如果你在玩 mirai 途中遇到问题可以尝试加群
1047497524
询问以快速得到答案。
不要问有没有人,不要不贴截图,不要笼统提问,不要高血压提问,我谢谢你。本群有以下要素
- 转载高血压图片
超超猫猫- 版本过低滚去论坛看223
- 除了mirai以外什么都聊
- 更新进度放送
-
RE: 新的扫码登陆如果掉线了可以像之前账密一样直接拉起来吗
@gaizi001 你把机器人的设备信息和缓存文件路径固定好,只有第一次登录需要扫码,之后请求扫码登录只要缓存没失效都会自动调缓存来登录。
-
RE: FixProtocolVersion 异常 Caused by: java.lang.ClassNotFoundException: xyz.cssxsh.mirai.tool.FixProtocolVersion
检查
- 运行时是否已依赖 fix-protocol-version
- java 版本是否大于等于 11
-
RE: 百度云 文件同步/备份 插件, 可作为前置插件调用百度云API
你 releases 没附加的文件
懂了,让他们自己编译(
哦现在已经上传文件了,那没事了。
只要是能热备份的功能我都举双手双脚支持 -
RE: 简单的Rss订阅插件 已添加RssHub支持 番剧订阅Bt种子自动上传
@Moon1995 噢我的上帝啊,为什么不使用开源免费还不用登录查看的
pastebin.pl 呢
好吧我找的这个过不去验证码()
啊,找到了,moz://a 在线剪贴板:https://pastebin.mozilla.org/