Skip to content
This repository has been archived by the owner on Feb 10, 2023. It is now read-only.

1.0-RC

Pre-release
Pre-release
Compare
Choose a tag to compare
@Him188 Him188 released this 28 Oct 07:38
· 504 commits to master since this release

后端

插件

  • 新增 ExportManager 控制插件类的导出
  • 新增 SemVersion 语义化版本
  • 引入 JvmPluginDescriptionBuilder 和相关 Kotlin DSL
  • 稳定 PluginDescriptor 相关 API (考虑未来的兼容性)
  • PluginManager 现在有更清晰的结构

指令

  • 重构指令:
    • 新增 CommandCall 等解释器
    • 新增 CommandCallParser, CommandCallResolver 和相关扩展 provider.
    • 现在指令从词法分析 (CommandCallParser) 到调用解析 (CommandCallResolver) 都允许插件扩展 (文档正在编写中)
  • 指令现在拥有类似 Kotlin 函数的解析特性:
    • 支持 vararg 参数
    • 支持参数默认值
    • 支持重载
    • 支持带名称的参数 (如果 CommandCallParser 实现)
  • 子指令的接收者 (receiver) 参数现在参与解析 (重载): 不符合的指令发送者将无法调用指令
  • 更名 CommandArgumentParserCommandValueArgumentParser
  • 添加更多内置的 CommandValueArgumentParser
    • ImageArgumentParser
    • PlainTextArgumentParser
  • 为指令分配权限时使用插件的 id 而不是 name.
  • CommandManager 现在有更清晰的结构
  • ConsoleCommandOwner现在是public`

扩展

  • 新增 CommandCallResolverProvider
  • 新增 CommandCallParserProvider
  • 引入 AbstractInstanceExtensionPoint 等扩展实现, 将来可能允许插件创建扩展点

存储

  • 修复 PairTriple 的序列化
  • 现在 AutoSavePluginData 构造器要求 saveName
  • 移动 PluginData.provideDelegateAbstractPluginData
  • 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)