This repository has been archived by the owner on Feb 10, 2023. It is now read-only.
1.0-RC
Pre-release
Pre-release
后端
插件
- 新增
ExportManager
控制插件类的导出 - 新增
SemVersion
语义化版本 - 引入
JvmPluginDescriptionBuilder
和相关 Kotlin DSL - 稳定
PluginDescriptor
相关 API (考虑未来的兼容性) PluginManager
现在有更清晰的结构
指令
- 重构指令:
- 新增
CommandCall
等解释器 - 新增
CommandCallParser
,CommandCallResolver
和相关扩展 provider. - 现在指令从词法分析 (
CommandCallParser
) 到调用解析 (CommandCallResolver
) 都允许插件扩展 (文档正在编写中)
- 新增
- 指令现在拥有类似 Kotlin 函数的解析特性:
- 支持 vararg 参数
- 支持参数默认值
- 支持重载
- 支持带名称的参数 (如果
CommandCallParser
实现)
- 子指令的接收者 (receiver) 参数现在参与解析 (重载): 不符合的指令发送者将无法调用指令
- 更名
CommandArgumentParser
为CommandValueArgumentParser
- 添加更多内置的
CommandValueArgumentParser
ImageArgumentParser
PlainTextArgumentParser
- 为指令分配权限时使用插件的
id
而不是name
. CommandManager
现在有更清晰的结构- ConsoleCommandOwner
现在是
public`
扩展
- 新增
CommandCallResolverProvider
- 新增
CommandCallParserProvider
- 引入
AbstractInstanceExtensionPoint
等扩展实现, 将来可能允许插件创建扩展点
存储
- 修复
Pair
和Triple
的序列化 - 现在
AutoSavePluginData
构造器要求saveName
- 移动
PluginData.provideDelegate
到AbstractPluginData
PluginData
现在拥有serializersModule
(kotlinx.serialization)- 在 YamlKt 序列化失败时使用 JSON
ValueName
现在已稳定
前端实现
- 新增
MiraiConsoleImplementation.getInstance
获取当前前端实例 - 在重复初始化时抛出
IllegalStateException
IJ 插件
- 添加
ResolveContext
, 在编辑阶段分析插件 ID, 指令名等属性的有效性 - 为插件主类定义添加 gutter
- 为子指令定义添加 line marker
- 为
PluginData.value
检查参数的可构造性, 并添加相关 fix
Gradle 插件
- Gradle 插件现在能自动配置 Mirai Console 编译环境
- Gradle 插件现在能自动配置 'Jar 打包' (shadowJar)
- 支持 Kotlin MPP (JVM target)