Skip to content

2.0-M2

Pre-release
Pre-release
Compare
Choose a tag to compare
@Him188 Him188 released this 28 Dec 10:42
· 4015 commits to dev since this 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 还不保证向后兼容性,但也建议用户尝试这个版本并反馈任何问题。