Releases: mamoe/mirai
Releases · mamoe/mirai
0.30.0
此版本为二进制不兼容更新, 全部使用者都需要重新编译.
源码兼容的改变:
- 删除全部
@Depreacted
兼容 - 删除全部多余的
@JvmName
以兼容将来的改变 (新 MPP 模块等级制架构) - 调整部分函数的 JVM 可见性
- 内联部分
MessageChain
工具函数 - 更新到 Kotlin 1.4-M1
源码不兼容的改变:
- 群设置由
Group
移动到独立的GroupSettings
- 调整 API 可见性: 将除
BotFactory
外mirai-core-qqandroid
中全部 API 改为internal
消息部分:
SingleMessage
实现接口CharSequence
和Comparable<String>
- 为
FriendImage
,GroupImage
,OnlineImage
,OfflineImage
增加companion object Key
- 调整
RichMessage
, 将所有子类聚合到一个文件 - 移动
XmlMessageHelper
为RichMessage.Compation
- 命名调整:
buildXMLMessage
改为buildXmlMessage
- 修复
CombinedMessage
中错误的left
和element
事件部分:
- 加强
selectMessages
, 增加回复, 引用回复, 默认值, 超时支持:
原处理方式:
val message = nextMessageOrNull(10.secondsToMillis) ?: kotlin.run {
quoteReply("请在 10 秒内发送一张图片")
return@case
}
val image = message.getOrNull(OnlineImage) ?: kotlin.run {
reply(message.quote() + "请发送一张图片")
return@case
}
reply(message.quote() + image.originUrl)
使用 selectMessages
DSL:
selectMessagesUnit {
has<OnlineImage>() quoteReply {
message[OnlineImage].originUrl
}
timeout(10.secondsToMillis) quoteReply {
"请在 10 秒内发送图片以获取链接"
}
defaultQuoteReply {
"请发送一张图片"
}
}
0.29.1
0.29.0
- 引入新消息监听 DSL:
whileSelectMessages
, 简化连续监听过程
bot.subscribeMessages {
"开启复读模式" `->` {
reply("成功开启")
whileSelectMessages {
"stop" `->` {
reply("已关闭复读")
false // 停止循环
}
default {
reply(message)
true // 继续循环
}
}
reply("复读模式结束")
}
}
- 引入新消息监听 DSL:
selectMessages
, 简化筛选监听过程
bot.subscribeMessages {
"test" `->` {
reply("choose option: 'hello', 'hi'")
val value: String = selectMessages {
"hello" `->` { "123" }
"hi" `->` { "222" }
default { "default value" }
}
reply(value)
}
}
- 监听消息的 DSL 新增
infix fun String.->(block)
- 处理
StatSvc.ReqMSFOffline
(#150) Contact.sendMessage
现在接受Message
参数, 而不是MessageChain
以兼容CombinedMessage
Member.sendMessage
现在返回MessageReceipt<Member>
而不是 QQ 泛型- 调整 JVM
MessageUtils
中一些方法的可见性 (@JvmSynthetic
) - 调整命名:
OfflineImage.queryOriginUrl
改为OfflineImage.queryUrl
- 允许手动重新初始化
Bot
(BotNetworkHandler.init
), 确保重初始化资源释放
0.28.0
0.27.0
0.26.1
0.26.0
0.25.0
0.24.1
0.24.0
-
Java 完全友好: Java 使用者可以同 Kotlin 方式直接阻塞式或异步(Future)调用 API
-
新增
MessegaSource.originalMessage: MessageChain
以获取源消息内容 -
群消息的撤回现在已稳定 (
Bot.recall
) -
现在可以引用回复机器人自己发送的消息:
MessageReceipt.quoteReply
-
新增
MessageRecallEvent
-
整理
MessageChain
的构造, 优化性能 -
整理所有网络层代码, 弃用
kotlinx.io
而使用io.ktor.utils.io
-
其他杂项优化