UltiTools-API 6.3.1 更新说明
6.3.1 替换了框架的 UltiCloud 客户端:通过 UltiCloud 协议 2.1.0 连接 wss://api.ultikits.com/v1/agent, 并用设备码接入服务器。面向模块作者的完整清单见 COMPATIBILITY.md, 发布页见 GitHub 上的 v6.3.1。
升级后才能重新连接
自 2026-11-06 UltiCloud 后端切换起,新网关拒绝 6.3.0 的服务器(HTTP 426)。6.3.0 服务器在升级到 6.3.1 之前,无法重新连接面板、执行 /ulticloud login、使用 /panel 链接或检查模块目录。
升级前准备
- 首次启动后,重新执行
/ulticloud login。6.3.1 会从.ultikits/credentials.json中删除 6.3.0 的cloud_token并记一条 WARNING,同时保留服务器uuid,面板因此可以提供重新绑定原有服务器的选项。 - 接入改用设备码。控制台会打印网址和有效期 10 分钟的
XXXX-XXXX码,在面板中确认即可。凭据保存在.ultikits/credentials.json,不会过期。详见云端登录。 - UltiLogin 的
/panel需要 UltiLogin 2.1.0。UltiLogin 2.0.0 的/panel在 6.3.1 上不再可用, 它的/login仍然可用。 - 直接使用 XSeries 的模块,需要检查 XSeries 14 移除的 API 并重新编译。
变更
- 替换 UltiCloud 客户端:协议 2.1.0(
wss://api.ultikits.com/v1/agent),目录 REST 1.1.0 (/v1/catalogue/*)。新增/ulticloud reconnect,/ulticloud status会显示服务器名称。 详见面板集成。 SensitiveCommandRegistry让模块把带密码类参数的命令的参数排除在发往 UltiCloud 的所有内容之外 (见敏感命令)。CloudPlayerLinks创建一次性玩家链接,取代魔法链接(见玩家链接)。- XSeries 从 13.7.1 升级到 14.0.0,HikariCP 升级到 7,jackson-databind 升级到 2.22.3,log4j 升级到 2.25.4。
修复
- 服务器文件操作保护的文件与面板的受保护列表一致。
- 被服务的快照请求会写入审计。
弃用
6.3.0 中仅为旧云端服务的公开成员,全部弃用并计划在 6.4.0 移除。它们要么明确拒绝,要么保持原有行为。 本版本不移除任何公开 API。
破坏性变更
没有二进制层面的破坏。针对 6.3.0 编译的模块仍能链接,因为 PanelResponderRegistry.registerResponder 与 dispatch 擦除后的方法描述符没有变化(已对照 6.3.0 与 6.3.1 的源码核对)。云端功能的运行时行为没有过渡期, 因为之前的云端服务在切换时已经停止。
面板 responder API 有两处源码层面的破坏,用到它们的模块需要先改源码才能针对 6.3.1 重新编译:
| 成员 | 6.3.0 | 6.3.1 | 模块作者要改什么 |
|---|---|---|---|
registerResponder(String, Function, String) 与 registerResponder(String, Function, String, UltiToolsPlugin) 的 responder 参数 | Function<JsonObject, CompletableFuture<JsonObject>> | Function<JsonObject, ? extends CompletableFuture<? extends JsonElement>> | lambda 或方法引用仍能编译。覆写这两个方法的子类,需要把参数类型改成新类型。 |
dispatch(String, JsonObject, String) 的返回类型 | CompletableFuture<JsonObject> | CompletableFuture<JsonElement> | 把接收结果的 CompletableFuture<JsonObject> 变量改成 CompletableFuture<JsonElement>,或对结果做类型转换。 |
新增的带第四个 Runnable 参数的 dispatch 重载是新增项,不是破坏。新的约定见 拥有一个请求/响应类型。
Ling Bao