这是一次主要更新,主要完善了插件和网页API功能并修复了一坨Bug
主要变化

新增
- 04f019e 添加更多属性和函数方便JS插件调用
- aa6a41e 添加玩家列表变量
- 1b9cd6b 支持获取绑定Id #117
- 5fc8841 允许JS插件在事件中返回Promise并等待
- 3dbe412 添加更多JS接口
- 7a14c77 支持Cli启动或停止网页服务器
- 7a14c77 为网页设置的白名单添加默认值
- 7a14c77 添加HTTP请求事件
- 7a14c77 支持手动释放网页文件
- 7a14c77 支持Swan日志输出到文件
- a2541da 支持在命令参数中决定是否使用Unicode字符
- 895d8cb 支持广播连接和插件日志输出
- 895d8cb 添加频道事件
- 895d8cb 添加logger输出事件
- 38d2636 支持发送频道消息
- dc80cfa 支持解析为消息段发送
- dc80cfa 为Plus添加日志控制台
- db4d26a 支持匹配Satori和OneBot12消息
- db4d26a 启动后可自动启动连接
- 24f071e 更新Plus的设置页面
- 24f071e 完善Plus的连接设置
- 735860c 完成新的命令格式和数据包处理器
- 510b127 支持OneBotV12协议
- b76d10e 支持Satori协议 #83
- 30fcd9b 添加更多api
- 52c0077 更新Restful Api
- ac5719f 添加Plus的文件拖入窗口处理
- 9de77af 添加下载新版本更新并替换功能
- 2c3b848 添加网页控制台嵌入文件,在启动时会尝试自动释放文件
- 1ec88a7 改进服务器启动逻辑,更改使用虚拟终端不需要重启即可生效
修复
- 0d524fe 应用部分为空的变量时会返回原变量的值
- e73482d 部分测试在非Windows系统运行失败
- c623370 .NET插件在构造函数中使用
resolve
无法得到正确的值 - 7a14c77 Cli的标题不会自动更新
- 7a14c77 无法使用Id含有大写字母的服务器变量
- 7a14c77 使用API修改设置未被保存
- 7a14c77 某些平台上使用虚拟终端退出时会导致Serein崩溃
- 38d2636 连接功能接收的数据部分字符未解码
- 510b127 反应功能运行时会修改命令对象
- 223c8c6 停止Host后部分服务未终止
- 223c8c6 使用网页接口开启WebSocket连接时崩溃
- 2c3b848 Lite的插件管理器在某些时候会引发异常
测试
其他
- 9b3768f 重命名部分属性和成员
- 5fc8841 调整类的可见性
- e770f60 重构部分ui
- 24831f9 更改类结构
- b76d10e 重构连接功能
- bf58302 类名称单复数不正确
- 9de77af 更改
SereinApp
类方便插件调用
不兼容更新
Warning
如果你正在从v2.0.x
升级到这个版本,你可能需要注意以下问题,并在必要时备份数据
设置
- 为兼容OneBot V12和Satori协议,连接设置结构发生变化,原有的连接设置大部分内容将会丢失
application.disableBinderWhenServerClosed
➡️application.disableBindingManagerWhenAllServersStopped
application.pluginEventMaxWaitingTime
➡️application.maximumWaitTimeForPluginEvents
application.jsGlobalAssemblies
➡️application.jsDefaultAssemblies
application.jsPatternToSkipLoadingSingleFile
➡️application.jsFilesToExcludeFromLoading
application.regexForCheckingGameId
➡️application.gameIdValidationPattern
application.pattenForEnableMatchingMuiltLines
➡️application.multiLineMatchingPatterns
用户 Id 类型变更
为适配 OneBot V12 和 Satori 协议,内部用户 Id 类型均由 long
改为 string
binding-records.sqlite.db
表结构发生变化
- 储存数据的表名由
Records
改为Datas
- 因用户 Id 类型变更,主键的类型由
INTEGER
改为TEXT
Tip
解决方法
手动执行 SQLite 命令
-- 使用在线SQLite编辑器或本地编辑器
INSERT INTO Datas (UserId, GameIds, Time, ShownName)
SELECT
CAST(UserId AS TEXT), -- 将整数UserId转换为文本类型
GameIds,
Time,
ShownName
FROM Records;
permission-groups.json
文件部分属性发生变化
原属性 members: number[]
改为 users: string[]
Js插件
部分函数或属性弃用或更改
serein.connection.active
➡️serein.connection.isActive
serein.connection.sendData
➡️serein.connection.sendDataAsync
serein.connection.sendGroupMsg
/serein.connection.sendPrivateMsg
➡️serein.connection.sendMessageAsync
serein.setting
➡️serein.settings.value
serein.metadata
➡️serein.app
网页接口
- 旧版本中部分
GET
方法操作请求(如启动服务器、停止服务器等)现需使用POST
或DELETE
方法请求,详见文档 - 现在
DELETE
方法请求返回的状态码是204
Tip
- 如果你是第一次使用Serein,你可以先阅读一下安装教程,这会对你有很大帮助!
- 如果你打算从v1的旧版本迁移到v2的新版本,你可以参考一下这个迁移教程,这会节约你很多时间
- 此版本支持基岩版服务器+Endstone插件加载器/LeviLamina插件加载器,但你需要在服务器配置项中手动启用使用虚拟终端选项
Note
不知道下面哪个文件适合你?看看这个文档