2.13.0-RC 包含: - 支持使用短信验证码进行设备锁验证 - 支持查看和修改好友分组 - 支持查询和修改群员头衔等活跃数据 - Core 模拟测试框架 - Console 下载进度条 - 一些问题修复 ## mirai-core ### 不兼容变更 - `mirai-core-api` 去除了对 `kotlinx-coroutines-jdk8` 的依赖. ### 新特性 - 支持使用短信验证码进行设备锁验证 (#717, #2109, #2216) - `nextEvent` 和 `nextEventOrNull` 新增 `intercept` 参数, 可在满足条件时拦截事件 (#1668, #2177 by @Nambers) - 支持查看和修改好友分组 (#1390, #1243, #2113 by @Nambers) > 好友分组定名为 `FriendGroup`. - 新增 `Friend.friendGroup` 获取该好友所属分组. - 新增 `Bot.friendGroups` 获取好友分组列表并操作分组. - 支持查询和修改群员头衔等活跃数据 (#2204, #2086, #2115 by @cssxsh) - 新增 `Group.active` 获取群的活跃数据. - 新增 `Member.active` 获取该成员的活跃数据. - 新增 `AbstractExternalResource.input` 的默认实现 > 在实现自定义 `ExternalResource` 时可能有帮助 ### 优化和修复 - 更新 `ANDROID_WATCH` 和 `MACOS` 的协议信息 (#2228 by @cssxsh) - 修复网络层的异常处理流程, 优化重连逻辑 - 修复断线重连时, 日志快速不断输出同一个异常, 之后无法恢复连接的问题 (#2148) - 修复离线时大量打印 `HeartbeatFailedException` 的问题 (#2175) - 优化由网络层抛出的异常的堆栈信息 > 现在不再有循环引用, 而且更简洁 > `CancellationException` 将会被替换为真实原因 - 修复在 Android 上遇到 'Duplicate class' 的问题 (#2248) - 修复合并转发内容中用户昵称错误的问题 (#2187) > 此修复也包含在 2.12.3 - 优化各平台的 ECDH 实现 (#2161 by @AdoptOSS) - 修复使用静态序列化器时无法编译的问题 (#2230) > 自 2.13.0-M1 - 在发送群公告失败时抛出有正确信息的异常而不是序列化错误 (#2069) - 修复日志中无法获得调试信息的问题 (#2097) - 提升一些已弃用的 API 的弃用等级 (#2213) ## mirai-console ### 新特性 - 在下载时展示进度条 (2133, #2140) > 也公开了进度条 API 供插件使用. 见 `MiraiConsole.newProcessProgress()`. - 在 `/login` 登录时使用可用的自动登录配置 (#2209 by @cssxsh) - 增加了 Console 前端实现的基础模块 `mirai-console-frontend-base` ### 优化和修复 - 优化文档细节 (#2207) - 优化日志系统 (#2196) - Console 现在总是使用 core 的 `MiraiLogger.Factory` API 创建日志 - 禁止插件修改日志系统 - 允许通过 classpath 修改日志系统 - 在保存日志到文件时不包含颜色符号 (#2218) - 在欢迎时打印 Mirai Console 字符画 > 以帮助区分 mirai-console 和 mirai-console-loader ## mirai-core-mock 新增 Core 模拟测试框架 `mirai-core-mock`. 版本号与 `mirai-core` 相同. [相关文档](https://github.com/mamoe/mirai/blob/dev/docs/mocking/Mocking.md) (#1304, #1521) 使用模拟测试框架可以构造虚拟 Bot, 模拟收到各种事件. ## IDEA - 在创建插件项目时自动从 Maven Central 获取 mirai 使用的 Kotlin 版本 (#2240, #2244 by @MrXiaoM)