This repository has been archived by the owner on Feb 10, 2023. It is now read-only.
Releases: mamoe/mirai-console
Releases · mamoe/mirai-console
2.0.0
2.0-RC
2.0-M2
2.0-M1-1
2.0-M1
与 mirai-core 2.0-M1 同步发布的适配版本, 修改:
TempCommandSender.user
改为NormalMember
Member.asTempCommandSender
改为NormalMember.asTempCommandSender
1.1.0
新特性
后端
AnsiMessageBuilder
: 构造和发送彩色消息 (控制台)- 新增只读配置:
ReadOnlyPluginData
和ReadOnlyPluginConfig
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
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
- 添加更多内置的
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)