## 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)
- 修复 `Image.size` 文档错别字 (#1978 by @zj713300)
- 提升在以前版本弃用的 API 的弃用等级 (#1837)
- 修复运行时产生大量错误日志的问题 (正确处理在心跳过程中遇到的错误) (
  #1893)
- 在心跳任务协程名称中包括 Bot ID
- 更新依赖:
    - 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)

### 新特性

- `PluginData`:
  支持 `serializersModule` (`PluginData.serializersModule`) (#1796,
  #1987)
- `PluginData`: 在定义 `value` 时使用精确的返回值,
  解决一些需要手动定义类型的情况 (#1987)
- `PluginData`: 支持 `MessageChain` 等所有 mirai 内置消息数据类型 (
  #1922)
- `PluginData`: 支持原生数组类型和引用数组类型 (#1801)
- 新增 `JavaAutoSavePluginData` 和 `JavaAutoSavePluginConfig`
  作为 `PluginData` 等的 Java 支持 (#1747, #1803, #1988)

### 优化和修复

- 修复 `AbstractPluginData.findBackingFieldValueNode`
- 修复依赖 `isOptional=true` 的插件时无法正确处理依赖的问题 (自 2.0) (
  #1949, #1968)
- 修复取消权限时的错误信息 (#1918 by @cssxh)
- 修复新版插件依赖在 init 块内调用依赖时会导致找不到的问题 (自 2.11) (
  #1965)
- 修复在下载依赖时试图下载并不存在的 JAR 的问题 (自 2.11) (#1975)
- 修复指令文档的 Java 示例 (#1970 by @hundun000)
- 补全 Java 示例文档 (#1970 by @hundun000)
- 修复 `PluginDescription.isOptional` 的文档 (#1869)
- 修复文档拼写错误 (#)

## mirai-console-gradle

### 优化和修复

- 在配置项目时优先使用 `optIn` 而不是 `useExperimentalAnnotation` (
  #1986)
- `buildPlugin` 打包的插件将会输出到 `build/mirai`, 与 2.11
  以前保持一致 (自 2.11)
- 修复 `buildPlugin` 会把子项目依赖也打包的问题 (自 2.11) (#1973)

## mirai-console-intellij

### 新特性

-
新的插件项目生成器 ([查看图片](https://github.com/mamoe/mirai/pull/1979)) (
#1976, #1979)
- 新增 Run Configuration: RunTerminal, 默认使用项目目录下 debug-sandbox
  作为运行目录
- 支持中文和英文

> 由于新项目生成器是 2022.1 的新功能, 新版本 v221-2.11.0-162-1 仅支持
> IntelliJ IDEA 2022.1 (和 Android Studio 等同版本).