ci-release-helper/changelogs/2.15.0-M1.md
这只会导致依赖 mirai 2.1.0 (发布于 2 年前) 编译的 Java 代码现在无法使用 mirai 2.15.0-M1 级以上版本运行. 将它们使用 2.15.0-M1 及以上重新编译即可运行.
这是因为 KJBB 以前有 bug, 会生成返回值为
Unit的方法桥. mirai 为了兼容, 一直让 KJBB 既生成返回Unit的, 也生成返回void的. 但自 Kotiln 编译器 1.8.0 起, 其 IR lowering 会把companion object中的静态函数@JvmStatic的返回值由Unit变更为void, 导致编译器插件 KJBB 不再能做兼容.
新的登录方法通过 BotAuthorization & BotFactory.newBot(id: Long, authorization: BotAuthorization) 登录
关于详细的使用方法请参考 BotAuthorization 的注释
扫码登录的实现不一定稳定 (因为涉及修改了大量内部登录和维护在线逻辑), 文档也还在正在准备中.
在 2.15.0-RC 可能会修改扫码登录的 API.
mirai-console **尚未支持 **在命令中指定扫码登录, 但是提供了
MiraiConsole.addBot(id: Long, authorization: BotAuthorization)用于扫码登录
例如在 Minecraft 插件中
no login (#2069, #2512 by @cssxsh)Announcements.get(fid) 出现 kotlinx.serialization.MissingFieldException: Field 'msg' (#2509, #2512 by @cssxsh)OfflineMessageSource 回复时, 引用回复的 At 变空白的问题 (#2501)getResource 方法获取全局资源文件 (#2536 by @ArgonarioD)StartupEvent, AutoLoginEvent (#2446 by @cssxsh)
分别在 Console 启动完成后, 和自动登录后触发