## mirai-core ### 不兼容变更 - 删除 SwingLoginSolver (#2410) > 它以前是设计给解决图形验证码, 而现在基本不会遇到图形验证码了。现在将默认使用命令行版本 LoginSolver。 > 以前使用 "-Dno-desktop" 可以禁用 SwingLoginSolver,现在这个选项将没有效果,不会报错。 - 现在使用 RemoteFile 将会得到编译错误 > RemoteFile 早在 2.8 就弃用了, 使用时会得到警告. 现在起使用将会得到编译错误. ### 新特性 - 群聊获取历史消息 (`Group` 实现 `RoamingSupported`) (#1866, #2332 by @StageGuard ) > 可使用 `group.roamingMessages` / `group.getRoamingMessages()` - 商城表情: 石头剪刀布 (#2220 by @cssxsh ) > 类型名称为 `RockPaperScissors` - 群打卡事件支持 (#1663, #2217 by @cssxsh ) > 类型名称为 `SignEvent` - `Announcement` 现在可以获取 已确认/未确认 的群成员 (#2255 by @cssxsh ) ### 优化和修复 - 修复无法登录的问题 (#2433 by @sandtechnology ) > 此修复也会在 2.13.4 包含 - 修复群员列表缓存文件不完整时会导致 bot init 失败的错误 (#2399) - 当设备信息等变更的时候清除缓存 (#2346, #2388) > 不清除会导致登录失败等问题 - 修复 iOS 无法查看私聊转发消息的问题 (#1575) - 修复转发消息存在特殊字符时无法加载的问题 (#2241) - 修正 `contentToString()` 注释不严谨处 (#2373, #2374 by @MrXiaoM ) - 修正 PokeMessage.id (#2170) - 修复 QuoteReply 无法引用 bot 发出的 ForwardMessage (#2342) - 修改日志等级的颜色 (#2336) > 现在 WARN 是金黄色,而不是红色 ## mirai-core-mock ### 优化和修复 - 避免 MockAbsoluteFile.md5/sha1 可能为空 (#2436 by @Nambers ) - 修复部分信息撤回逻辑不正确的错误 (#2421 by @Nambers ) - 修复 `MockNormalMember.modiyAdmin()` 逻辑错误 (#2420 by @Nambers ) - 修复 uploadMockImage 上传相同文件时触发 java.nio.file.FileAlreadyExistsException (#2401) - 引入 AvatarGenerator - 修复联系人头像等信息更新同步的问题 ## mirai-console ### 新特性 - JvmPlugin 中现在可以调用 mirai console 所使用的针对 Kotlin object 优化后的 SPI Service Loader (#2247 by @cssxsh) ### 优化和修复 - 修复 `JvmPlugin.onDisable` 被多次执行的错误 (#2015, #2397) - 修复低版本 Android 系统报错 `java.lang.NoSuchMethodError: No virtual method getDeclaredAnnotation(Ljava/lang/Class;)L` (#2354 by @zhaodice) - 在命令的报错中去除不必要的 `InvocationTargetException` 包装 (#2258 by @cssxsh ) - 优化 MiraiLogger (在 mirai-console) 性能 (#2341) - SLF4J 支持 (#2341) - 修复 Plugin.onLoad 抛出错误时没有终止 console 的错误 > 此错误在 2.14.0-RC 引入 ## IDEA - 支持 2022.3 (#2372) > - 新插件版本号为 `223-2.14.0-172-1` > - 新版本只支持 2022.3 + Kotlin 1.7.20 (因为 2022.3 捆绑 1.7.20) --------------- ## 关于 mirai-console SLF4J 支持 (#2341) ### 配置文件修改 > 修改均为默认配置, 先前已经生成的配置不会进行修改 ### `Logger.yml` ```diff # 默认日志输出等级 # 可选值: ALL, VERBOSE, DEBUG, INFO, WARNING, ERROR, NONE defaultPriority: INFO # 特定日志记录器输出等级 loggers: example.logger: NONE console.debug: NONE Bot: ALL + org.eclipse.aether.internal: INFO + org.apache.http.wire: INFO +# 是否启动外部日志框架桥接 +binding: + slf4j: true ``` ### ABI 变更 > 注: 实际上 console 没有直接的 ABI 变更 依赖更新: `org.slf4j:slf4j-api:1.7.32` -> `2.0.3` 此依赖的更新只会影响 `slf4j-api` 的对接, 并不会影响 `slf4j-api` 的单纯使用 > 即不会对插件有任何影响, 只会对部分对 console 进行高度自定义的会有少许影响 ### 其他 API 变更 - mirai-logging-log4j2 现在使用 `org.apache.logging.log4j:log4j-slf4j2-impl` - mirai-logging-slf4j-logback 现在使用 1.3.4 - mirai-core-all 现在携带的是 slf4j 2.0.x