Releases: mamoe/mirai
2.2.2
2.2.1
- 修复部分情况下 mirai-core 依赖无法更新的问题. 如有疑惑请参考 Configuring Projects
2.2.0
mirai-core
- 通过稳定的 highway 通道上传所有资源 (图片, 语音, 长消息, 合并转发) (#916, #917)
- 支持设置群精华消息
Group.setEssenceMessage
(#837) - 支持自动 key 刷新 (skey, pskey 等用于 HTTP API) (#901)
- 支持自动切换登录服务器
- 新增供 Java 用户使用的
EventChannel.filter
- 新增
Stranger.asFriend
和Stranger.asFriendOrNull
- 新增
nextEventAsync
和nextEventOrNullAsync
- 修复
nextEvent
没有正确处理协程取消的问题 - 修复发送
MusicShare
到部分群失败的问题 (#918) - 修复一些消息发送后报错 'sequence ids not yet available' 的问题 (#930)
- 修复资源后缀无法自动检测时没有使用
ExternalResource.DEFAULT_FORMAT_NAME
的问题 - 将官方客户端有时候发送的 "null" 文件后缀名转换为
ExternalResource.DEFAULT_FORMAT_NAME
- 将官方客户端有时候发送的大写文件后缀名转为小写
- 提升登录和重连稳定性
- 不再发布 JVM 模块到根模块, 因为在 Android 环境会无法解决依赖. Maven JVM 用户需要使用
-jvm
后缀的模块.
mirai-console
自 2.2 起,mirai-console 系列所有模块将与 mirai-core 同步版本发布
- 新增 Enum 参数解析器 EnumValueArgumentParser (mamoe/mirai-console#267)
- 提升 IntelliJ 插件的性能
2.1.1
2.1.0
新特性
- 支持获取群成员加群时间 (#865)
- 支持获取群成员最后发言时间 (#394)
- 支持识别官方机器人群员 (#439, #810 by @sandtechnology)
- 支持查询用户详细资料 (#866)
- 支持解析群成员邀请其他人的事件
MemberJoinRequestEvent.invitor
(#458, #882 by @sandtechnology) - 支持使用 QQ 互联通道发送音乐分享
MusicShare
(#682, #889, #690 by @wdvxdr1123) - 支持自动在被挤下线时重连
BotConfiguration.autoReconnectOnForceOffline
(#835) - 添加
ForwardMessageBuilder.add(MessageEvent)
以便从一个消息时间获取信息
优化和修复
2.0.0
- 修复消息长度判定
- 修复新人加群聊事件无法触发 (#856, #859 by @sandtechnology)
- 修复分片消息解析时 PlainText 没有合并的问题
- 修复其他客户端上线事件可能的解析失败
迁移指南 Migration From 1.x
2.0-RC
由旧版本迁移
请查看 Migration From 1.x
未来规划
Mirai 已完成 2.0 重构。
2.0-RC
是一个稳定版本。 之后版本更新将会有兼容性保证。下一个版本 2.0.0
将会在修复 2.0-RC
的问题和完善文档后发布。
新特性
- 支持同步其他客户端加入的群 (#804 by @sandtechnology)
- 支持同步其他客户端的私聊消息 (#841 by @sandtechnology)
- 支持从
MemberJoinEvent.Invite
获取邀请人 (#804 by @sandtechnology) - 支持群图片和私聊图片的互相转换 (#307)
- 统一图片的 ID, 现在所有图片 ID 都为原群图片格式
- 稳定消息序列化 (#817)
- 稳定
Nudge
API - 新增
BotOfflineEvent.reconnect
以支持控制掉线自动重连 - 新增
BotConfiguration.workingDir
配置工作目录 - 新增
UserEvent
接口 - 新增
recallIn
结果获取
不兼容变更
TempMessageEvent
更名为GroupTempMessageEvent
, 因计划支持更多临时会话消息 (#429)- 更名
MessageChain
相关的asMessageChain
为toMessageChain
- 弃用
MessageChain
相关的flatten
- 弃用
Message.isPlain
,Message.isNotPlain
,Message.isContentNotEmpty
- 弃用
Member.isNormal
,Member.isAnonymous
- 弃用
ContactList.idContentString
- 删除
MessageSource
中isAboutFriend
,isAboutGroup
,isAboutTemp
- 将
Listener.ConcurrencyKind
和Listener.EventPriority
由嵌套类移动到顶层 - 简化戳一戳相关事件: 删除所有
XXXNudgeEvent
, 以单一NudgeEvent
替代 MessageSource.originalMessage
不再带有MessageSource
- 过滤 Android 客户端发送的引用回复后包含的多余的
At
Bot.getFriend
现在在id == bot.id
时返回bot.asFriend
OtherClient.id
变为一个特定的 id, 而不是与Bot.id
相同IMirai
低级 API 函数名现在不再带有_lowLevel
前缀
优化和修复
- 在重连时不捕获
Error
(#824) - 修复
ListenerHost.registerTo
没有调用EventChannel.parentScope
的问题 - 修复
NormalMember.toString
- 修复禁言事件解析错误的问题 (#811)
- 修复发送 At 内容有误的问题
- 修复戳一戳发起人解析异常的问题 (#664, #795 by @sandtechnology)
- 修复
QuoteReply
StackOverflowError
- 修复
QuoteReply.source
的MessageSource.kind
错误的问题 - 修复
RichMessage.Key
的baseKey
- 在
ExternalResource.uploadImage
和ExternalResource.sendImage
添加formatName
参数 - 实现
ForwardMessage.contentToString
- 在资源关闭后自动删除缓存文件
- 在 Bot 离线时不会关闭 Bot (#838)
- 修复部分 PC 客户端的消息不能同步的问题 (#787, #836 by @sandtechnology)
- 修复内存泄露问题 (#556)
- 一些小类型变更
- 大量代码优化和文档更新
兼容性
2.0-M2
-> 2.0-RC
有部分二进制不兼容,因此可能需要重新编译。
在 2.0-RC
和之后版本, 你可以使用 mirai 官方维护的项目的以下同步版本:
- mirai-console:
2.0-RC
- chat-command:
0.4.0
- mirai-api-http:
1.9.6
- mirai-native: (稍后发布)
2.0-M2-2
优化和修复
- 修复图片发送失败的问题 (#797)
- 修复可能的网络层内存泄露问题
兼容性
2.0-M2 -> 2.0-M2-2 是兼容的。意味着使用 2.0-M2 和 2.0-M2-1 编译的应用可以直接与 2.0-M2-2 运行。
在 2.0-M2-2, 你可以使用 mirai 官方维护的项目的以下同步版本:
- mirai-console:
2.0-M2
- chat-command:
0.3.0
- mirai-api-http:
1.9.5
- mirai-native:
1.9.6
2.0-M2-1
优化和修复
- 修正发送私聊信息时错误发送的问题
- 优化 LoginSolver 提示
兼容性
2.0-M2 -> 2.0-M2-1 是兼容的。意味着使用 2.0-M2 编译的应用可以直接与 2.0-M2-1 运行。
在 2.0-M2-1, 你可以使用 mirai 官方维护的项目的以下同步版本:
- mirai-console:
2.0-M2
- chat-command:
0.3.0
- mirai-api-http:
1.9.5
- mirai-native:
1.9.5
2.0-M2
新特性
-
支持解析分片消息 (#440)
-
支持禁言匿名群成员 (#432)
-
支持匿名群成员消息解析
-
支持发送私聊长消息 (#171)
-
支持商城表情
MarketFace
(#761 by @sandtechnology) -
支持更多系统表情(
Face
)(#720 by @sandtechnology) -
支持根据服务器要求调整心跳频率 (#765 by @sandtechnology)
-
支持群龙王状态变化事件 (#774 by @sandtechnology)
-
支持删除好友 (#776 by @sandtechnology)
-
新增
OtherClient
代表 Bot 账号登录的其他客户端- 支持查询在线的客户端列表:
Bot.otherClients
- 支持其他客户端上线事件:
OtherClientOnlineEvent
- 支持其他客户端离线事件:
OtherClientOfflineEvent
- 支持其他客户端发送消息给 Bot:
OtherClientMessageEvent
- 支持其他客户端发送群消息时的同步:
GroupMessageSyncEvent
(#644)
- 支持查询在线的客户端列表:
-
新增
MessageChain.findIsInstance
扩展获取第一个指定类型SingleMessage
实例 -
新增
MessageRecallEvent.author
-
新增
Message.deserializeFromJsonString
和Message.serializeToJsonString
-
新增
Message.contentEquals
参数strict
以检测各个消息元素 -
新增
ContactOrBot.avatarUrl
通用获取头像 (#756) -
新增
ContactOrBot.bot
获取有关Bot
-
新增
Group.getMember
和Group.getMemberOrFail
用于不适合使用Group.get
的场合 -
新增
ContactList.getOrFail
获取联系人,在目标不存在时抛出异常 -
新增
EventChannel
,弃用原CoroutineScope.subscribe
等函数 (#514, #753) (文档) -
新增
ExternalResource
替代ExternalImage
以支持通用的语音,文件和图片的发送的 API (#754, #752)
优化和修复
- 处理登录错误 239 (#744)
- 重新设计 mirai 码, 添加转义语法 (#685, #768)
- 语音现在使用
ExternalResource
并支持多种输入 Group.botAsMember
,Bot.asFriend
现在稳定- 实现
MessageChain.hashCode
和MessageChain.equals
- 弃用
MessageEventExtensions
- 在服务器要求时重新登录 (#691)
- 优化
LoginSolver
(#703):DefaultLoginSolver
更名为StandardCharImageLoginSolver
- LoginSolver.Default 现在在 Android 平台返回
null
- BotConfiguration.loginSolver 现在可空,为空时表示使用 Mirai 内置,在 Android 平台须提供 (#703)
- 在
SimpleListenerHost
事件处理器中抛出的异常现在会被包装成ExceptionInEventHandlerException
以允许获取相关事件 (#533) HummerMessage
变为接口- 为
selectMessages
和whileSelectMessages
添加@BuilderInference
,现在无需手动指定泛型 - 修复
MessageRecallEvent.FriendRecall.authorId
的歧义 (#704) - 修复撤回群消息时
MessageRecallEvent.GroupRecall
重复广播的问题 - 协议内部优化(#742, #749, #724, #728 by @sandtechnology, #671 by @jihuayu)
- 来自社区的文档更新 (#710 by @StageGuard, #735 by @iceBear67, #748 by @lc6a, #715 by @kininaru, #780 by @Cyl18)
由旧版本迁移
要从 2.0-M1 升级到 2.0-M2,请先了解 新的事件系统。
- 在 Kotlin 大部分改动都可以由 IDE 自动完成。
- 在 Java,有大量上传图片和语音相关的 API 变动,请参考 #751。
要从 1.x 升级到 2.0-M2,请首先升级到 2.0-M1。
兼容性
2.0-M1 -> 2.0-M2 有部分二进制不兼容,因此可能需要重新编译。
在 2.0-M2, 你可以使用 mirai 官方维护的项目的以下同步版本:
- mirai-console:
2.0-M2
- chat-command:
0.3.0
- mirai-api-http:
1.9.5
- mirai-native:
1.9.5
未来规划
mirai 已经完成 2.0 的两个里程碑。
下一个版本 2.0-RC 将在消息序列化完成后发布。届时,mirai 将提供稳定的 API(同时对于源码或二进制)。
即使 2.0-M2 还不保证向后兼容性,但也建议用户尝试这个版本并反馈任何问题。