Mirai Console Versions Save

mirai 的高效率 QQ 机器人控制台

2.0.0

3 years ago

与 mirai-core 同步发布的 2.0.0 版本, 无代码更新

注意:自 mirai-core 2.2 起,mirai-console 与 mirai-core 同步版本发布,请到 mirai 查看

2.0-RC

3 years ago
  • mirai-core 2.0-RC
  • 跟随 mirai-core 调整了 Temp 相关事件为 GroupTemp

2.0-M2

3 years ago

mirai-core 2.0-M2 的同步版本

2.0-M1-1

3 years ago
  • 修复 buildPlugin 时 mirai-core-utils 没有被过滤的问题
  • 更新 mirai-core 到 2.0-M1-1

2.0-M1

3 years ago

mirai-core 2.0-M1 同步发布的适配版本, 修改:

  • TempCommandSender.user 改为 NormalMember
  • Member.asTempCommandSender 改为 NormalMember.asTempCommandSender

1.1.0

3 years ago

新特性

后端

  • AnsiMessageBuilder: 构造和发送彩色消息 (控制台)
  • 新增只读配置: ReadOnlyPluginDataReadOnlyPluginConfig

IDE

  • ILLEGAL_VERSION_REQUIREMENT: 检查插件配置的依赖版本号的有效性
  • ILLEGAL_COMMAND_DECLARATION_RECEIVER: 检查指令的接收者参数为 CommandSender
  • RESTRICTED_CONSOLE_COMMAND_OWNER: 在使用 ConsoleCommandOwner 时给出警告

Gradle

  • Task generatePluginMetadata 生成插件依赖等相关数据为 mirai-plugin.metadata 供启动器读取
  • Task publishPlugin 将插件发布到 JCenter

优化和修复

  • 优化 /status 的显示
  • 提升 IDE 插件的性能
  • 使用 plugin.yml 时, 'name' 可选, 自动以 'id' 替代

1.0.1

3 years ago

后端

  • 修复 PluginDependency.parseFromString 无法解析无版本号的依赖的问题
  • 修复 PluginLoaderload, enable, dsiable 文档描述的异常与实际抛出的不符的问题
  • 修复意外暴露的 JvmPluginInternal.isEnabled 的 setter
  • 修复内存加载的插件注册的扩展没有被收集的问题

Gradle 插件

  • 现在只为 jvm, androidJvm, common 目标添加 Mirai 依赖

1.0.0

3 years ago

后端

指令

  • 重构 CommnadExecuteResult 以适应新指令
  • 新增 CommandConfig,允许修改指令前缀
  • 新增 AutoLoginCommand 配置自动登录
  • 增强 AutoLoginConfig,支持修改登录使用的协议
  • 新增内置指令 /status 查看服务器当前状态
  • 修复 JCompositeCommand.description
  • 现在 Console 后端不自带聊天环境的指令执行支持 (独立为 project-mirai/chat-command, 下载插件)

解析

  • CommandCallResolver 现在是 SingletonExtension
  • 新增 CommandCallInterceptor 以拦截指令解析
  • 指令解析失败时现在会产生详细错误原因:
    • 新增 CommandResolveResult, FailureReason
  • 修复解析时的大小写转换问题 (现在对指令名称不区分大小写)
  • 现在 CommandArgumentParserExceptionIllegalCommandArgumentException 构造器都要求非空 message 参数
  • 优化 AbstractCommandValueParameter.StringConstant.toString
  • 指令解析相关文档更新

存储

  • 修复 AutoSavePluginData 重复保存的问题
  • 修复 findBackingFieldValue 类型转换错误

插件

  • 移动 JvmPluginDescription 到 top-level
  • PluginDependency 现在支持序列化
  • 支持从 Jar 中读取 plugin.yml 加载插件信息
  • SemVersion.Requirement 现在是 data class 且支持序列化

杂项

  • 新增 LoggerController 接口用于控制日志输出的等级
  • 在 Console 启动时提示加载的外部 PermissionService

Terminal 前端

  • 在控制台输入错误指令时将会建议可能的指令并提示错误原因

IDE 插件

  • 优化性能
  • NOT_CONSTRUCTABLE_TYPE 现在将会报告在类型参数上 (而不整个语句)
  • NOT_CONSTRUCTABLE_TYPE 现在支持检测 kotlinx-serialization 内置支持的类型
  • 支持检查插件主类配置情况并提供快速修复
  • 新插件主类图标 (@DazeCake )

Gradle 插件

  • 修复 buildPlugin 时未打包资源文件的问题

1.0-RC-1

3 years ago
  • 修复一些情况下指令解析异常和无法执行的问题
  • 修复 HelpCommand 的执行

1.0-RC

3 years ago

后端

插件

  • 新增 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)