Skip to content

v2.2.1-Stable

Compare
Choose a tag to compare
@Xwdit Xwdit released this 15 Jan 03:54
· 13 commits to main since this release

2023新年快乐!RainyBot v2.2.1-Stable 现已正式发布~ 此版本是自V2.0-Stable以来的最大更新,带来了大量的新功能/功能改进/问题修复;本次更新带来了全新的离线文档查看器,对 插件编辑器/插件管理器/控制台/Mirai适配器/RainyBot API 等多个组件进行了大幅改进与优化,还对全局进行了大量细节改进,修复了大量问题等。具体更新内容将在下方详细说明,建议所有用户均升级至此版本以获得最佳的开发与使用体验~

更新日志:

文档查看器:

  • 我们实现了全新的离线文档查看器,包含了RainyBot API中的所有内容,并支持文档间的快速跳转。您现在可以在主界面顶部的选项卡中访问文档查看器,并在其拓展坞中选择您需要查看的文档以及具体部分。

  • 文档查看器现在与插件编辑器紧密结合,您可以随时在编写插件时通过快捷键,快速跳转到与您正在编写的代码部分相匹配的文档;详情请查看插件编辑器部分的更新日志。

插件编辑器:

  • 新增了编辑器拓展坞,提供了快速文件切换,与快速函数跳转功能。现在您无需离开编辑器窗口,即可在同一个窗口中快速在不同文件间进行编辑;您也可以通过点击拓展坞中的函数名,来快速跳转到当前文件中该函数对应的行。

  • 我们对Godot引擎源码进行了定制,重新实现了自动补全与错误检查功能。现在,插件编辑器将会通过GDScript语法分析器来完全理解您的代码;它将根据您的代码,结合RainyBot/Godot API中的项目来充分检查您代码中的各类错误,并为您提供最合适的补全建议/弹出提示,以大幅提升您的插件开发体验。

  • 我们还基于语法分析器重新实现了文档跳转功能。现在,您可以在插件编辑器中按住左侧Ctrl键,并将鼠标悬停在代码的任意部分;插件编辑器将判断该部分是否有匹配的文档,并在找到匹配文档后允许您点击快速跳转到该文档的对应部分。

  • 我们改善了插件编辑器对于撤销/重做的处理机制,对于未保存文件的处理机制,对于编辑过程中被删除的文件的处理机制等。现在在此类事件发生时,编辑器应该能够正确的进行处理。

  • 为自动补全的各个项目类型添加了图标,以便于进行快速区分

  • 改进了错误提示过长时,底部栏显示出界的问题;现在出界部分将被自动省略,您可以通过将光标悬停在底部栏来查看完整内容。

插件管理器:

  • 改进了插件管理器GUI中,插件列表的更新方式。插件列表将仅在插件状态发生变化时进行更新,而不是每次打开GUI时主动进行获取;此更改可大幅提高插件管理器GUI的整体性能。

  • 我们改进了插件的加载/卸载/删除等机制,提升了相关组件的性能与稳定性。

  • 现在新建插件输入文件名后,可通过回车键确认操作,而无需点击新建按钮 (感谢 @cloudwindy 对此改进的贡献)

控制台:

  • 新增了代理服务器配置选项,您现在可以在控制台配置文件中指定一个代理服务器地址与端口,即可让RainyBot的所有HTTP请求通过此代理进行 (包括内部请求与来自RainyBot API的请求)

  • 新增控制台自动清理功能,将在控制台当前内容行数超过指定范围时 (默认为1000行),自动保存为新日志文件并清空显示内容;此功能可大幅降低控制台的内存占用,可在控制台配置文件中对此进行调整。

  • 新增了单次输出打印的字符上限 (默认为2000字),超过限制部分将被省略,以防止巨大字符串打印造成性能问题;此选项可在控制台配置文件中进行调整。

  • 大幅提高了重新导入资源功能的速度与稳定性,现在应该拥有与通过场景编辑器重新导入相同的性能。

  • 改进了各类GUI的输入敏捷度,现在所有界面应该对各种操作拥有更快的响应速度

  • 修复控制台标题栏的运行时间显示错误的问题

Mirai适配器:

  • 实现了多控制台功能,合并了Mirai后端与RainyBot控制台界面,现在您可以在一个窗口快速切换两个控制台的显示与命令输入。

  • 实现了对Mirai进程的状态跟踪及管理,优化了Mirai后端启动/初始化/连接的性能与稳定性。现在可以通过控制台实现Mirai进程的启动/停止,并且在运行状态发生变化时提供通知与提示。

  • 改进了Mirai的加载与启动流程,与Mirai的连接流程降低了对计时器的依赖;现在将在检测到Mirai的Bot账号登陆成功后进行连接,而不是在启动进程后通过计时进行判断。

  • 对Websocket连接的稳定性进行改进,避免在发送和接收大型数据包时断开连接,修复了诸如无法正常获取人数较多的群成员列表等问题

  • 修复了对Websocket的配置修改不生效的问题,改进了正确的配置格式

  • 更新Mirai版本至v2.13.3,Mirai-API-Http版本至v2.7.1

RainyBot API:

  • (可能破坏兼容性) 基于C++模块重新实现了此前版本中损坏的Gif图像生成功能;Gif图像生成速度相较此前平均提高了100倍,生成一张20帧的小型动图只需大约0.02秒。移除了GifImage类的get_data()函数

  • (可能破坏兼容性) 为各项API内部实现了规范性检查,并统一了内部构造函数的返回结果。现在,对于某些返回结果为对象实例的函数,若请求失败/执行失败,将统一返回null而不是难以确定有效性的实例。

  • 改进场景图像的获取,现在会自动多等待一个渲染帧,以确保能够正确获取到场景更新后的图像

杂项:

  • 此版本起,我们将开始使用 为RainyBot自定义的Godot Engine 4.0源码分支 进行开发,这允许我们与Godot引擎的核心进行更深层的交互,且允许我们以高性能的方式实现更多功能。(此版本截止至Commit Xwdit/godot@f07ad71)

  • 此版本对各个界面的外观细节,便捷性与可访问性等做出了大量优化与调整

  • 此版本对各类组件进行了大量的性能优化与错误修复

完整更新细节请参见: v2.1.6-stable...v2.2.1-stable

兼容性变更:

  • 移除了GifImage类的get_data()函数

  • 对于某些返回结果为对象实例的API方法,若请求失败/执行失败,将统一返回null而不是难以确定有效性的实例。

  • (来自Godot上游的变更) 若您的插件场景使用了TextureRect组件,请在更新到此版本前,使用文本编辑器批量打开您插件中所有的.tscn格式文件,将其中所有的 ignore_texture_size = true 批量替换为 expand_mode = 1 ,检查无误后即可安全更新到此版本。若不进行此更改,您的场景布局可能会被完全破坏

更新说明:

  • 此版本更新了所基于的Godot二进制文件,暂不支持对其进行热更新,因此仅包含完整发行包(文件名以-full结尾)

  • 请删除RainyBot根目录/adapters/mirai/bots文件夹以外的所有内容,删除RainyBot根目录下的.pck(如果有)及.exe文件,删除Rainybot根目录下的project.godot(如果有)或project.binary(如果有)文件以及libs(如果有)和.godot(如果有)文件夹,随后下载完整发行包并用其中所有内容直接覆盖旧版本文件即可。

  • 更新完毕后,您可能需要运行一次插件菜单中的重新导入所有资源功能,以确保所有场景及资源均可被正常加载

国内下载镜像:

Windows版: