This repository was archived by the owner on Feb 10, 2023. It is now read-only.
Releases: mamoe/mirai-console
Releases · mamoe/mirai-console
Release list
2.0.0
2.0-RC
2.0-M2
2.0-M1-1
2.0-M1
与 mirai-core 2.0-M1 同步发布的适配版本, 修改:
TempCommandSender.user改为NormalMemberMember.asTempCommandSender改为NormalMember.asTempCommandSender
1.1.0
新特性
后端
AnsiMessageBuilder: 构造和发送彩色消息 (控制台)- 新增只读配置:
ReadOnlyPluginData和ReadOnlyPluginConfig
IDE
ILLEGAL_VERSION_REQUIREMENT: 检查插件配置的依赖版本号的有效性ILLEGAL_COMMAND_DECLARATION_RECEIVER: 检查指令的接收者参数为CommandSenderRESTRICTED_CONSOLE_COMMAND_OWNER: 在使用ConsoleCommandOwner时给出警告
Gradle
- Task
generatePluginMetadata生成插件依赖等相关数据为mirai-plugin.metadata供启动器读取 - Task
publishPlugin将插件发布到 JCenter
优化和修复
- 优化
/status的显示 - 提升 IDE 插件的性能
- 使用
plugin.yml时, 'name' 可选, 自动以 'id' 替代
1.0.1
1.0.0
后端
指令
- 重构
CommnadExecuteResult以适应新指令 - 新增
CommandConfig,允许修改指令前缀 - 新增
AutoLoginCommand配置自动登录 - 增强
AutoLoginConfig,支持修改登录使用的协议 - 新增内置指令
/status查看服务器当前状态 - 修复
JCompositeCommand.description - 现在 Console 后端不自带聊天环境的指令执行支持 (独立为 project-mirai/chat-command, 下载插件)
解析
CommandCallResolver现在是SingletonExtension- 新增
CommandCallInterceptor以拦截指令解析 - 指令解析失败时现在会产生详细错误原因:
- 新增
CommandResolveResult,FailureReason等
- 新增
- 修复解析时的大小写转换问题 (现在对指令名称不区分大小写)
- 现在
CommandArgumentParserException和IllegalCommandArgumentException构造器都要求非空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
1.0-RC
后端
插件
- 新增
ExportManager控制插件类的导出 - 新增
SemVersion语义化版本 - 引入
JvmPluginDescriptionBuilder和相关 Kotlin DSL - 稳定
PluginDescriptor相关 API (考虑未来的兼容性) PluginManager现在有更清晰的结构
指令
- 重构指令:
- 新增
CommandCall等解释器 - 新增
CommandCallParser,CommandCallResolver和相关扩展 provider. - 现在指令从词法分析 (
CommandCallParser) 到调用解析 (CommandCallResolver) 都允许插件扩展 (文档正在编写中)
- 新增
- 指令现在拥有类似 Kotlin 函数的解析特性:
- 支持 vararg 参数
- 支持参数默认值
- 支持重载
- 支持带名称的参数 (如果
CommandCallParser实现)
- 子指令的接收者 (receiver) 参数现在参与解析 (重载): 不符合的指令发送者将无法调用指令
- 更名
CommandArgumentParser为CommandValueArgumentParser - 添加更多内置的
CommandValueArgumentParserImageArgumentParserPlainTextArgumentParser
- 为指令分配权限时使用插件的
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)