mirai-core
不兼容变更
- 弃用
IMirai.Http
- 弃用
BotConfiguration.json
新特性
- 在达到
AtAll
每日使用上限后以新的reason
AT_ALL_LIMITED
抛出SendMessageFailedException
(#1948)在 2.10 说明了该行为, 但实际上并没有支持
- 在首次登录遇到任何错误时终止登录而不会重试, 修复日志提示
NettyChannelException
且长时间不结束的问题 (#1963) - 新增获取多种规格的群和用户头像, 修复群成员头像为 GIF 时获取的头像链接错误的问题 (#1557, #1721 by @cssxsh)
优化和修复
- 修复因网络波动原因, 出现反复掉线重连或产生大量日志的问题 (#1907)
- 修复收到
IllegalStateException: returnCode = -10106
导致停止工作的问题 (#1840, #1957) - 修复登录时遇到 'Timeout waiting for ConfigPush' 等 ConfigPush 有关问题 (#1899, #1991)
- 在登录失败时使 account.secrets 无效
- 修复运行时产生大量错误日志的问题 (正确处理在心跳过程中遇到的错误) (#1893)
- 在心跳任务协程名称中包括 Bot ID
- 提升在以前版本弃用的 API 的弃用等级 (#1837)
- 使
MiraiLogger.asMiraiLogger
和MiraiLogger.useLog4j2
稳定 - 修复
Image.size
文档错别字 (#1978 by @zj713300) - 在初始化桌面环境 (
java.desktop
) 出错时将错误记录至日志 - 更新依赖:
- Kotlin: 1.6.21
- kotlinx.serialization: 1.3.2
- kotlinx.coroutines: 1.6.1
- ktor: 1.6.7
- log4j: 2.17.2 (#1969)
mirai-console
不兼容变更
- 弃用
JAutoSavePluginData
和JAutoSavePluginConfig
(替换见下文) (#1988) - 新版插件打包方式现在输出
.mirai2.jar
,旧版打包方式继续输出.mirai.jar
(自 2.11)
新特性
PluginData
: 支持serializersModule
(PluginData.serializersModule
) (#1796, #1987)PluginData
: 在定义value
时使用精确的返回值, 解决一些需要手动定义类型的情况 (#1987)PluginData
: 支持MessageChain
等所有 mirai 内置消息数据类型 (#1922)PluginData
: 支持原生数组类型和引用数组类型 (#1801)- 新增
JavaAutoSavePluginData
和JavaAutoSavePluginConfig
作为PluginData
等的 Java 支持 (#1747, #1803, #1988) - 若加载一个插件时两种后缀都存在,则只加载
.mirai2.jar
(自 2.11)
优化和修复
- 修复
AbstractPluginData.findBackingFieldValueNode
- 修复依赖
isOptional=true
的插件时无法正确处理依赖的问题 (自 2.0) (#1949, #1968) - 修复取消权限时的错误信息 (#1918 by @cssxh)
- 修复新版插件依赖在 init 块内调用依赖时会导致找不到的问题 (自 2.11) (#1965)
- 修复在下载依赖时试图下载并不存在的 JAR 的问题 (自 2.11) (#1975)
- 修复指令文档的 Java 示例 (#1970 by @hundun000)
- 修复
PluginDescription.isOptional
的文档 (#1869) - 修复在
JavaPluginScheduler
阻塞线程时可能导致协程调度器阻塞的问题 - 重写插件文档 (#1916, #1995)
mirai-console-gradle
优化和修复
- 在配置项目时优先使用
optIn
而不是useExperimentalAnnotation
(#1986) buildPlugin
打包的插件将会输出到build/mirai
, 与 2.11 以前保持一致 (自 2.11)- 修复
buildPlugin
会把子项目依赖也打包的问题 (自 2.11) (#1973)
mirai-console-intellij
新特性
- 新的插件项目生成器 (查看图片) (#1976, #1979)
- 新增 Run Configuration: RunTerminal, 默认使用项目目录下 debug-sandbox 作为运行目录
- 支持中文和英文
由于新项目生成器是 2022.1 的新功能, 新版本 v221-2.11.0-162-1 仅支持 IntelliJ IDEA 2022.1 (和 Android Studio 等同版本).