Skip to content

Releases: SereinDev/Serein

v2.1.0

15 Jul 07:01

Choose a tag to compare

GitHub release (latest by date)

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

主要变化

web_light

新增

  • 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的插件管理器在某些时候会引发异常

测试

其他

不兼容更新

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方法操作请求(如启动服务器、停止服务器等)现需使用POSTDELETE方法请求,详见文档
  • 现在DELETE方法请求返回的状态码是204

Tip

  • 如果你是第一次使用Serein,你可以先阅读一下安装教程,这会对你有很大帮助!
  • 如果你打算从v1的旧版本迁移到v2的新版本,你可以参考一下这个迁移教程,这会节约你很多时间
  • 此版本支持基岩版服务器+Endstone插件加载器/LeviLamina插件加载器,但你需要在服务器配置项中手动启用使用虚拟终端选项

Note

不知道下面哪个文件适合你?看看这个文档

v2.0.1

22 Jan 04:55

Choose a tag to compare

GitHub release (latest by date)

这是一次次要更新,主要修复了一些影响正常使用的Bug

修复

  • 4179769 在某些系统上无法获取监视器信息导致控制台刷屏
  • 4179769 Lite版在尝试删除运行中的服务器时引发崩溃
  • ac4256a 使用了Pty的服务器退出时抛出错误
  • a63219f 某些情况下在控制台输入导致崩溃
  • a63219f 获取服务器信息时导致崩溃
  • 54a1de4 Lite和Plus的服务器配置编辑器中的端口下限不一致
  • 71e293a Plus的服务器配置编辑器未设置父窗口
  • 71e293a 服务器配置编辑器的端口项无法输入超过32767的数字
  • 5daf425 Plus窗口不半透明

v2.0.0-rc1

27 Dec 02:14

Choose a tag to compare

GitHub release (latest by date)

  • 时隔一年余Serein v2.0终于做好了
  • 考虑到和v1的差别过大,此处不再写详细的更新日志。具体的差异内容请查看文档介绍

Warning

  • 这是一个预览版,或者更准确地说是一个发布候选版,仍可能含有未知的Bug或漏洞,故在使用前你应该做好备份
  • 此版本和v1的配置文件、数据文件、插件均不兼容

v1.3.5-pre5

09 Jul 13:31

Choose a tag to compare

GitHub release (latest by date)

⚠ 不兼容更新

  • 变量名称修改
    • Delay->Latency
  • Motd
    • 成员名称变化
      • delay->latency
    • 成员内容变化
      • Favicon
        • 图片的CQ码 现转为FaviconCQCode
        • 图片的base64字符串
  • 数据结构更改
    • Regex.regex->Regex.expression
      • 会自动识别转化文件

🚀 新功能

  • JS部分函数支持多参调用
  • JS支持安全调用
  • 添加了权限组
  • 支持自定义游戏ID验证正则
  • 支持设置全局导入的命名空间JSEventMaxWaitingTime小于0时将不等待JS返回
  • 支持命令行版关闭指定类型的输出
  • 添加MessageBus
  • 使用JToken自身方法获取指定值
  • 更改版本号
  • 支持命令重新加载文件
  • 优化了JS错误输出
  • 支持使用GBK
  • 新增控制台执行命令功能
  • 新增获取WS统计信息的函数
  • 加快了日志的处理速度[需要验证]
  • 新增获取PID的JS函数
  • 当关服命令中没有任何内容时,发送Ctrl+C信号关服 #62
  • 支持正则分组构造[仅NET6]
  • 修改权限组文件保存位置
  • 添加内部版本号
  • 缩短退出等待时长

🐛 修复

  • wpf列表复制后更新同步
  • 批量重命名错误
  • 命令行版重载文件异常
  • PreLoadConfig未以驼峰式储存
  • Motd无法获取成员
  • 获取Motd时人数过高可能异常
  • 删除不必要的判断
  • 删除无用代码
  • wpf无法新增成员(感谢@yuanxi953 反馈)
  • 命名空间错误
  • 删除冗余代码
  • 详细输出不生效
  • 内存使用情况获取异常
  • 启动时若定时任务为空弹窗
  • 事件触发器中变量替换不生效
  • JavaMotd开头截断
  • 权限组等数据文件为空时缺少判断
  • 删除了没用的Nuget包
  • 无法重启服务器
  • 自定义游戏ID检查正则失效
  • 导入文件异常
  • Winform关闭时报错
  • 事件触发器未提供%ID%变量
  • 命令行版本关闭超时
  • 无法正确读取权限组文件

🧰 其他

  • 规范命名
  • 使用Nullable
  • 优化代码
  • 拆分代码
  • 优化项目结构

v1.3.4

11 Mar 08:45

Choose a tag to compare

GitHub release (latest by date)

🚀 新功能

  • JS相关
    • 新增了一些js函数
    • 支持引入js模块
    • 支持js发送临时消息会话
    • 支持js获取插件列表
    • 支持命令调用并执行js
    • 支持js拦截事件
    • 支持js修改正则
    • 支持js使用motd对象
    • 新增PluginsLoaded事件
    • 支持获取类型名称、启动时间、设置预加载配置
  • 支持设置正则忽略群聊 (隐藏功能,需要通过修改文件实现)
  • 支持插件获取群成员缓存和设置对象
  • motd支持ipv6
  • 支持禁用指定页面
  • 支持自动更新
  • 服务器信息栏不再显示存档名称而是在线人数
  • 更新控制台版本命令
  • 支持服务器不在运行的时候禁用绑定功能
  • 支持设置自动运行的延迟
  • 新增了功能被禁用时的回复
  • 现在控制台版本也会显示欢迎页面了
  • 添加了合并导入正则的功能
  • 支持命令发送临时消息
  • 支持插件设置变量
  • 支持导入自定义程序集
  • WPF正则管理支持复制原有正则
  • 支持对插件进行详细配置
  • 支持发送临时会话消息
  • WPF使用富文本框绘制控制台
  • 添加了logo
  • 更改了部分函数名称
  • NET6支持结束进程时自动关闭子进程
  • 开启/强制结束服务器和连接机器人时自动更新详细信息栏
  • 命令行版本增加链接高亮
  • 输入Cron表达式时可预览最近20个执行时间
  • 支持查看用户协议
  • 优化热重载逻辑
  • 更新链接
  • 支持热重载文件
  • 多线程处理控制台输出 #47 需要更多测试
  • 支持获取当前服务器的Motd
  • 优化了js获取Net对象
  • 支持事件获取触发的成员变量
  • 新增MsgID变量
  • 为调用js回调添加message_id参数
  • 自动删除JS计时器
  • 单文件部署发行 #37 (only for net6.0-windows)
  • ⚠配置文件使用小写驼峰保存
    • 获取Serein设置 serein.getSettings()获取到的key将以小驼峰模式命名(事件除外)
  • 增加函数类型校验

🐛 修复

  • ❗❗❗输入命令时未转义\n(此bug极其严重,可能导致服务器被执行意外的指令)
  • 服务器无法输入命令
  • Tostring()错误
  • WPF添加事件后不显示
  • WPF事件无法保存
  • WPF启动后崩溃
  • CPU使用率获取不正确
  • Winform下CPU占用显示不正确
  • 控制台输入框上下键切换不正确
  • 部分情况下获取CPU信息失败崩溃
  • 部分控制台彩色输出异常
  • 部分语言环境下可能大小写出现错误
  • 删除没有用的包
  • 服务器信息栏不再显示存档名称而是在线人数
  • 控制台空格显示不完全;字体异常
  • 输出文件时由于被占用而报错
  • 在系统极其卡顿的情况下服务器CPU使用率计算出错导致可能超过100%
  • cwd与当前目录不同时部分文件错位
  • 绑定返回布尔值错误
  • 删除没有用的编译信息
  • 插件加载阻塞主线程
  • 打开OpenFileDialog异常崩溃
  • 输出时自动消除了行尾空格
  • 当服务器类型为未知时仍会尝试获取motd
  • WPF的MessageBox不换行
  • #31 主题跟随系统无法读取
  • 禁用后的插件无法被识别
  • WPF分隔线颜色不随主题变化
  • 禁用的任务仍能被触发
  • Winform在NET6下部分文字被遮挡
  • 服务器输出行尾空格被裁切
  • 控制台版本初始化时不保存设置
  • WPF分隔线颜色不随主题变化
  • WPF的ThemeFollowSystem和UseDarkTheme设置无法正确保存
  • 删除无效控件和资源
  • 应用变量时可能返回null
  • 部分情况下Motdje数据包被截断
  • js的motd获取失败
  • js的logger与log输出不一致
  • js定时器取消时错误
  • js报错显示不完整
  • WPF初始化时出现未经处理的异常
  • 函数英文拼写不规范
  • 游戏ID匹配时未忽略大小写
  • 无法通过命令行开启debug模式
  • ❌初始化Motdpe崩溃 (较严重)
  • js获取的数组类型不正确
  • 函数英文拼写不规范
  • 定时任务判断错误
  • 插件数据包事件的文本未转码
  • net6下内存不更新
  • 私聊消息触发群组缓存写入
  • ⚠js解释器bug( sebastienros/jint#1542 ) 暂时回退版本
    • StringCompilationAllowed暂不可用
  • ⚠js获取的数组类型不正确
    • 通过 serein.getSettingsObject() 获取的Bot.PermissionListBot.GroupList类型由System.Collections.Generic.List<Int64>转为JS原生数组
  • ❌插件触发异常 (较严重)

🧰 其他

  • 支持查询在线使用人数
  • 更新语法
  • 修改部分嵌套
  • 调整项目结构
  • 添加扫描工作流
  • 更改变量名大小写
  • 更改motd的成员类型
  • 降低部分数据的保存频率
  • 提高获取服务器信息的速度
  • 提高解析命令和替换变量的速度
  • 文件task -> schedule (可能需要重新导入数据文件) 已自动实现转换读取

v1.3.3

01 Jan 02:19

Choose a tag to compare

GitHub release (latest by date)

🚀 新功能

  • 加入了更多变量
  • 支持设置行终止符
  • 优化debug输出
    • 输出时自动将Exception解压
  • 链接更新
  • 更新了控制台html文件 (需要删除console文件夹重新生成)
    • 鼠标放开/键盘按键放开时自动复制
    • WPF版可自动根据当前主题切换暗黑模式
  • 支持wpf显示启动欢迎页面
  • 新增启动自动运行选项(见settings/Serein.json
  • 控制台版本相关
    • 支持使用Ctrl+C关闭服务器或退出
    • 支持Linux
      • 由于系统类型差异,暂不支持获取该平台的CPU使用率
      • 以后可能会想办法解决的~~(咕咕咕~~
    • 读取不到数据文件时自动创建
    • 更新了输出样式
  • JS插件相关
    • 更新了Jint的版本
      • 现支持ECMAScript 2022语法
      • 也就是说你可以使用lambda表达式、Promise等语法了
    • 使用枚举值区分js事件
    • 支持禁用插件
    • 使用serein.log的插件会自动附加命名空间

🐛 修复

  • 服务器输出事件执行速度过快导致卡死
    • 现在你可以根据自身性能修改限速,见settings/Serein.json中的DevelopmentTool-JSEventCoolingDownTime,单位为ms
  • 控制台版本无法保存调试设置选项
  • 更改工作路径后文件生成错误
  • 机器人重连时间显示错误
  • Java版motd无法正常获取
  • WPF下不显示插件
  • winform事件tag错误
  • 部分情况下WPF启动崩溃
  • 关闭事件不执行
  • 删除不必要的引用
  • 移除没有用的设置文件
  • 事件变量错误、变量词性错误 如Original -> Origin
  • JS解释器一系列问题
    • 多线程协同报错 (极其严重)
    • 执行频率过高
    • 其他乱七八糟的小细节
    • 主线程阻塞的插件无法重新加载
    • 删除了一个没有用的事件
    • Winform加载插件后堆栈溢出
    • 无法机器人反馈信息数据包的JS事件

🧰 其他

  • 合并代码
  • 简化项目文件
  • 规范代码格式
  • 修正行末重复分号
  • 强制将文档目录展开

❗ 不兼容变更

Warning

此部分更改可能导致部分插件/数据文件失效

  • 更改了部分变量
    • Original -> Origin
    • CPUPercent -> CPUUsage
    • RAMPercent -> RAMUsage
    • Percentage -> ServerCPUUsage
  • 更改了JS引擎的getSysInfo的返回类型

Warning

目前v1.3.3.0_dotnet6的版本存在多个严重Bug,建议使用net framework472的代替🙏

v1.3.2

04 Nov 14:34

Choose a tag to compare

GitHub release (latest by date)

🚀 新功能

  • WPF 【🎉新发布✨】
    极简UI且极易上手,对萌新服主极其友好
    type_wpf
    console
    • 更好的服务器插件管理
    • 重新支持了获取更新
    • 设置界面新增ToolTip
    • 在标题栏显示服务器启动文件
    • 支持使用读取命令记录
    • 完善各项功能
    • 完善快捷跳转
    • 完善开始页面部分功能
    • 完善事件编辑器
    • 支持更改主题
    • 实现弹窗
    • 实现服务器插件的加载和右键菜单
    • 实现托盘图标功能
    • 支持控制台显示
    • 新增事件修改页面
  • Winform
    • 支持修改输出编码
    • 支持修改事件
  • 控制台
    • 支持关闭彩色输出
    • 更改了部分输出文字和样式
  • 其他
    • 重载插件时自动释放EventWebSocket
    • 将提交信息写入程序版本号
      image
    • 重定向MsgBox
    • 支持使用stop命令终止服务器重启倒计时
    • 重命名了事件名称
  • WPF
    • 支持快捷启动参数
    • 支持设置最大缓存行数
  • 其他
    • 部分页面刷新后不自动适应列宽
    • 重命名了事件名称
    • 支持自动替换消息中的at
    • 输入stop可暂停重启计时器
    • 读取EventMatches文件时自动更新

🐛 修复

  • 控制台
    • 无法编译
  • WPF
    • 无法即时读取成员列表
    • 打开任务页面时自动执行
    • 机器人状态显示错误
    • 端口无法保存
    • 部分设置无法更新
    • 服务器输出编码选择后不变更
    • 切换页面后控制台输出丢失
    • 无法重新加载插件
    • 仪表盘加载卡顿
    • 系统信息获取不正确
    • 列表显示不完整
  • Winform
    • 插件重复加载
    • 部分子窗口大小可调
    • 部分页面刷新后不自动适应列宽
  • 其他
    • 事件无法保存
    • 绑定时不忽略首尾空格
    • 群事件无法触发
    • 可能导致命令Motd获取死循环
    • 可能导致命令JS死循环
    • 重启服务器仍出现弹窗
    • 无法生成Event.json
    • js类大小写错误
    • 链接错误
    • Logger输出类型错误
    • 插件关闭服务器时仍出现弹窗
    • 任务重复执行
    • 服务器未启动前强制结束导致崩溃
    • 绑定时未处理头尾空格
    • 异常关闭导致设置丢失
    • 输出日志时未换行

📃 文档

船新文档已上线

image

  • 分类更加合理
  • 支持快捷搜索
  • 新增扩展列表

⚠ 不兼容更新

  • 事件文件格式有所改动,可能导致原有设置失效
  • JS的WebSocket实例化对象后不再自动连接,需手动使用open()连接

v1.3.1

10 Aug 11:50

Choose a tag to compare

GitHub release (latest by date)

🚀 新功能

  • 新增命令行版Serein
  • 重定向Debug输出
  • 新增命令行版帮助页面
  • 支持命令行版Serein加载插件
  • 完善更多功能
  • 合并代码
  • 支持多条多行匹配正则配置
  • 更改判断服务器退出逻辑
  • 再一次更改了服务器状态逻辑
  • 更改链接
  • 为js引擎增加更多功能
  • 支持js连接ws
  • 更新js解释器功能
  • 更改js解释器初始化逻辑
  • 添加js插件
  • 增加setIntervalsetTimeout函数
  • 为插件右键菜单加入更多功能
  • 增加子窗口的帮助功能
  • 更改部分报错信息
  • 更新示例插件
  • 添加启动参数

🐛 修复

  • nukkit服务端输出异常
  • 无法导入命名空间
  • Timer无法关闭
  • 读取文件后无法释放
  • ClearTimeout等函数拼写错误
  • 文件名错误
  • 等待服务器退出的Task异常消失导致判断错误
  • 拖拉排序表格内容时数组下标越界
  • 输出时空格未被转义导致显示与实际不符
  • 输出命令时未转义
  • https://serein.cc 链接不正确
  • 窗口释放后消息仍能输出到控制台
  • 控制台输出空格不换行

📃 文档

  • 更新函数
  • 修复格式错误
  • 更新文档

🧰 其他

  • 删除不必要的代码
  • 格式化
  • 更新工作流
  • 删除病句

v1.3.0

28 Jul 15:45

Choose a tag to compare

GitHub release (latest by date)

🚀 新功能

  • 支持加载Serein的JS插件
    • 此功能暂时不太成熟,务必谨慎使用
    • 开发文档:Javascript[已过时]
  • ws断线重连
  • 纯文本发送至机器人 #11

🐛 修复

  • 大部分线程冲突问题
  • 含[]的消息无法正确匹配
  • 监听群和管理设置保存错误

📃 文档

  • 更新文档

🧰 其他

  • 增加函数注释
  • 更新工作流

v1.2.9

13 Jul 09:28
e7c7e05

Choose a tag to compare

GitHub release (latest by date)

🚀 新功能

  • 新增了GameID变量(详见 变量列表-成员管理变量[已过时]
  • 支持自定义事件被触发后执行的命令(详见事件[已过时]
  • 支持获取Java服务器Motd
  • 删除了Matches/ipv4Port设置项
  • 支持选择服务器类型
  • 支持设置本地服务器端口
  • 为Event设置添加了说明
  • 支持查询Motd
  • 新增motdpe和motdje两个指令,可用于获取指定服务器信息(详见命令-获取服务器信息[已过时]
  • Debug添加文本上限
  • 添加Favicon变量(详见变量列表-服务器motd变量[已过时]
  • 再一次支持了动态更新设置文件
  • 新增权限不足反馈

🐛 修复

  • 更改群成员时因列表变化失败
  • 处理消息回执时出现异常
  • 群限定范围错误
  • 任何非管理员消息都反馈无权限
  • 事件无法执行解绑命令
  • Event莫名其妙数组重复
  • 命令列表缓存重复
  • 含有换行符\n \r的命令无法执行
  • 类型为List<string>的设置项出现重复

📃 文档

  • 更新文档
  • 修复错字
  • 修复格式错误
  • 新增正则下载连接

🧰 其他

  • 优化代码
  • 格式化代码
  • 优化部分代码逻辑
  • 更改命名空间
  • 删除不必要的引用
  • 修复格式错误