Skip to content

Releases: mamoe/mirai

2.2.2

31 Jan 15:13
374de06
Compare
Choose a tag to compare
  • 修复部分群发送的图片无法显示的情况 (#939)
  • 修复部分图片ID没有正确处理的情况 (#933)

2.2.1

30 Jan 14:06
Compare
Choose a tag to compare
  • 修复部分情况下 mirai-core 依赖无法更新的问题. 如有疑惑请参考 Configuring Projects

2.2.0

29 Jan 04:28
Compare
Choose a tag to compare

mirai-core

  • 通过稳定的 highway 通道上传所有资源 (图片, 语音, 长消息, 合并转发) (#916, #917)
    • 提升上传好友图片的稳定性 (#194)
    • 提升发送长消息的稳定性 (#892)
    • 支持发送高音质的语音 (silk) (#577)
    • 支持多线上传,大幅加快上传速度
    • 新增 BotConfiguration.highwayUploadCoroutineCount 设置多线上传连接数量
  • 支持设置群精华消息 Group.setEssenceMessage (#837)
  • 支持自动 key 刷新 (skey, pskey 等用于 HTTP API) (#901)
  • 支持自动切换登录服务器
  • 新增供 Java 用户使用的 EventChannel.filter
  • 新增 Stranger.asFriendStranger.asFriendOrNull
  • 新增 nextEventAsyncnextEventOrNullAsync
  • 修复 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 同步版本发布

2.1.1

26 Jan 05:52
Compare
Choose a tag to compare
  • 提升重连稳定性 (#900)
  • 修复 BotConfiguration.reconnectionRetryTimes 不起作用和 LoginFailedException 时无限重连的问题 (#895)
  • 优化重连时的日志

2.1.0

23 Jan 17:21
Compare
Choose a tag to compare

新特性

  • 支持获取群成员加群时间 (#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) 以便从一个消息时间获取信息

优化和修复

  • 修复无限重连的问题 (#894), 提升重连稳定性
  • 修复部分消息如引用回复带图片无法发送的问题, 提升长消息稳定性
  • 修复部分 Java API 调用时产生 NoSuchMethodError 的问题
  • 修复新用户入群 MemberJoinEvent 事件无法触发的问题 (#641)
  • 修复主动请求处理时 FriendAddEvent 没有广播的问题
  • 提升加载群成员列表的速度

2.0.0

15 Jan 09:54
Compare
Choose a tag to compare
  • 修复消息长度判定
  • 修复新人加群聊事件无法触发 (#856, #859 by @sandtechnology)
  • 修复分片消息解析时 PlainText 没有合并的问题
  • 修复其他客户端上线事件可能的解析失败

迁移指南 Migration From 1.x

2.0-RC

12 Jan 10:27
Compare
Choose a tag to compare

由旧版本迁移

请查看 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 相关的 asMessageChaintoMessageChain
  • 弃用 MessageChain 相关的 flatten
  • 弃用 Message.isPlain, Message.isNotPlain, Message.isContentNotEmpty
  • 弃用 Member.isNormal, Member.isAnonymous
  • 弃用 ContactList.idContentString
  • 删除 MessageSourceisAboutFriend, isAboutGroup, isAboutTemp
  • Listener.ConcurrencyKindListener.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.sourceMessageSource.kind 错误的问题
  • 修复 RichMessage.KeybaseKey
  • ExternalResource.uploadImageExternalResource.sendImage 添加 formatName 参数
  • 实现 ForwardMessage.contentToString
  • 在资源关闭后自动删除缓存文件
  • 在 Bot 离线时不会关闭 Bot (#838)
  • 修复部分 PC 客户端的消息不能同步的问题 (#787, #836 by @sandtechnology)
  • 修复内存泄露问题 (#556)
  • 一些小类型变更
  • 大量代码优化和文档更新

兼容性

2.0-M2 -> 2.0-RC 有部分二进制不兼容,因此可能需要重新编译。

2.0-RC 和之后版本, 你可以使用 mirai 官方维护的项目的以下同步版本:

2.0-M2-2

01 Jan 09:33
Compare
Choose a tag to compare
2.0-M2-2 Pre-release
Pre-release

优化和修复

  • 修复图片发送失败的问题 (#797)
  • 修复可能的网络层内存泄露问题

兼容性

2.0-M2 -> 2.0-M2-2 是兼容的。意味着使用 2.0-M2 和 2.0-M2-1 编译的应用可以直接与 2.0-M2-2 运行。

在 2.0-M2-2, 你可以使用 mirai 官方维护的项目的以下同步版本:

2.0-M2-1

30 Dec 14:39
a05280c
Compare
Choose a tag to compare
2.0-M2-1 Pre-release
Pre-release

优化和修复

  • 修正发送私聊信息时错误发送的问题
  • 优化 LoginSolver 提示

兼容性

2.0-M2 -> 2.0-M2-1 是兼容的。意味着使用 2.0-M2 编译的应用可以直接与 2.0-M2-1 运行。

在 2.0-M2-1, 你可以使用 mirai 官方维护的项目的以下同步版本:

2.0-M2

28 Dec 10:42
Compare
Choose a tag to compare
2.0-M2 Pre-release
Pre-release

新特性

  • 支持解析分片消息 (#440)

  • 支持禁言匿名群成员 (#432)

  • 支持滑动验证码处理 (#772, #745) (文档)

  • 支持匿名群成员消息解析

  • 支持发送私聊长消息 (#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.deserializeFromJsonStringMessage.serializeToJsonString

  • 新增 Message.contentEquals 参数 strict 以检测各个消息元素

  • 新增 ContactOrBot.avatarUrl 通用获取头像 (#756)

  • 新增 ContactOrBot.bot 获取有关 Bot

  • 新增 Group.getMemberGroup.getMemberOrFail 用于不适合使用 Group.get 的场合

  • 新增 ContactList.getOrFail 获取联系人,在目标不存在时抛出异常

  • 新增 EventChannel,弃用原 CoroutineScope.subscribe 等函数 (#514, #753) (文档)

  • 新增 ExternalResource 替代 ExternalImage 以支持通用的语音,文件和图片的发送的 API (#754, #752)

  • 更好的 Java API (#751, #755)

优化和修复

  • 处理登录错误 239 (#744)
  • 重新设计 mirai 码, 添加转义语法 (#685, #768)
  • 语音现在使用 ExternalResource 并支持多种输入
  • Group.botAsMember, Bot.asFriend 现在稳定
  • 实现 MessageChain.hashCodeMessageChain.equals
  • 弃用 MessageEventExtensions
  • 在服务器要求时重新登录 (#691)
  • 优化 LoginSolver (#703):
    • DefaultLoginSolver 更名为 StandardCharImageLoginSolver
    • LoginSolver.Default 现在在 Android 平台返回 null
    • BotConfiguration.loginSolver 现在可空,为空时表示使用 Mirai 内置,在 Android 平台须提供 (#703)
  • SimpleListenerHost 事件处理器中抛出的异常现在会被包装成 ExceptionInEventHandlerException 以允许获取相关事件 (#533)
  • HummerMessage 变为接口
  • selectMessageswhileSelectMessages 添加 @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 已经完成 2.0 的两个里程碑。

下一个版本 2.0-RC 将在消息序列化完成后发布。届时,mirai 将提供稳定的 API(同时对于源码或二进制)。

即使 2.0-M2 还不保证向后兼容性,但也建议用户尝试这个版本并反馈任何问题。