自动内容更新与受管重启
客户端现在可以从所选服务器的游戏端口检查、下载并校验内容,不需要玩家逐个复制安装 ZIP,也不需要玩家登录管理后台。下载内容只包括声明、贴图和音乐,不会安装或执行模组 JAR。
自动检测启动环境不等于已经接管启动器。 当前自动重启只适用于下面明确配置的受管直接子进程。普通 PCL、HMCL、官方启动器、Docker 和管理面板尚未提供通用接管适配;尤其是正常已认证客户端,仍缺少启动器适配器,不应把其账户启动参数复制进配置来绕过限制。
客户端如何更新
- 先安装匹配 Minecraft / Forge 版本的 XFEServerManager 模组。从主菜单连接服务器时,客户端在登录前检查内容;已有世界运行时不会执行这套安装流程。
- 首次选择可信服务器时确认下载,可以记住该服务器。游戏端口未提供额外的签名或 TLS 身份验证;SHA-256 检查完整性,并不证明服务器身份。只接受可信来源,不建议多个不同内容服务器共用同一游戏实例。
- 客户端获取服务器本次启动实际加载的版本,而不是尚待服务器重启的新发布修订。后台下载、类型/大小/资源校验通过后只写入暂存区;不会覆盖当前已挂载的资源。
- 下一次客户端 JVM 启动、注册内容和打开世界之前,自动应用已验证的待更新包。受管客户端获得启动器确认后可以自动退出、重新启动;未受管客户端保持运行,并说明需要从原启动器重新启动。重新启动后再次连接服务器。
原版/旧服务器未实现更新协议时继续原有连接流程。版本不符、校验失败或注册项不兼容时不会强行进入;服务器原有的内容指纹校验仍然保留。更新系统不负责安装缺失模组、替换 Java、升级 Forge 或维护客户端账户登录。
专服接入受管重启
本模式适合可自行管理 Java 启动命令的独立专服。使用前备份世界、数据库和配置,先在隔离副本验证。不要在已经运行的服务器旁边再启动一个实例。
- 在服务器正常关服后,将发行包中的
xfesm-content-supervisor-2.0.0.jar放到服务器目录。 - 将配置示例复制到同目录,重命名为
xfesm-supervisor.properties。按该服务器已有启动配置修改executable和各项参数。示例使用 1.20.1 / Forge 47.4.0 的安装路径,其他版本必须调整。 gameDirectory相对配置文件所在目录解析;argument.N中的相对路径由子进程在gameDirectory中解析。Windows 路径使用/,值不要添加引号。argument.count必须与从argument.0开始的连续条目一致。- 用 JDK 17 或更高版本启动辅助程序,例如在服务器目录执行:
java -jar xfesm-content-supervisor-2.0.0.jar --config xfesm-supervisor.properties
辅助程序的 Java 版本与配置中的服务器 Java 是两回事:1.20.1 使用 Java 17;当前其他三个版本使用 Java 21。配置中的可执行文件必须真实存在。Windows .bat 中的 Java 参数可以由管理员明确配置,但 .bat 本身、cmd /c、PowerShell 或 shell 脚本不能作为本辅助程序的执行入口。它不会自动扫描并执行附近的启动脚本。
正常启动后在“内容创作”页面确认状态为受管,而不只是“检测到 Java/容器/启动器”。只允许一个辅助程序管理同一游戏目录;不要同时启用会争抢拉起进程的另一套面板重启循环。
发布后的行为与失败保护
服务器发布时已经生成本地待加载内容,不需要向自己再次下载。受管专服会提示 30 秒倒计时;随后确认辅助程序、保存世界、完成数据库检查点、再次核验目标与授权,最后正常停止。辅助程序仅在匹配的、未过期的一次性请求已确认且子进程正常退出时重新启动。
- 默认每个辅助程序最多在滚动一小时内执行 3 次内容重启,可配置为 1–10 次;进程间延迟为 1–30 秒。
- 异常退出、普通无请求关服、手动关服撤销、指纹变化、过期授权或失去辅助程序心跳,都不能作为自动重启的成功条件。该工具不是通用崩溃守护程序。
- 人工关服会关闭当前重启会话,覆盖仍在等待确认的请求。重新启动会使用新会话;不会因为旧文件中的请求再次执行更新。
- 世界保存、审计、数据库检查点或重启准备失败时,停止自动更新并保留正在运行的服务器;检查工作台状态和日志。磁盘故障也可能妨碍撤销记录,不能把失败信息当成操作已成功完成。
- 未受管专服只发布待加载版本,不自动停服。单纯设置 Docker
restart或系统服务策略,并不会让本版本自动接管停服更新;需要后续明确适配或由管理员配置受管直接启动方式。
辅助程序保存的本地协议目录是 config/xfeservermanager-supervisor,内容暂存在 config/xfeservermanager-content/updates。这些协议文件不包含启动凭据,也不接受来自服务器或网页的执行命令。不要编辑、复制会话文件到其他实例,或删除内容启用标记来绕过保护。
尚未覆盖与验收
当前未实现自动接管任意客户端启动器、认证令牌刷新、Docker/面板控制接口、自动重新连接游戏服务器、崩溃自动回滚或任意热注册。受管辅助程序不保存 --accessToken 等认证参数;已认证客户端的真正无人值守重启仍需要启动器适配器。
协议和辅助程序测试使用临时目录及无 Minecraft 依赖的小型 Java 子进程,覆盖正常/异常退出、一次性请求、取消、会话关闭和校验失败。这不是四版本真实客户端、启动器、代理或生产专服的实机验收。部署时仍需验证所用启动方式、资源渲染、登录、正常更新和手动停止场景。
2026-09-13 构建验证
- 公共 Java
check:306 项通过,其中下载/授权 9 项、包校验与崩溃恢复 13 项、重启控制与临时 JVM 生命周期 15 项。 - Web:162 项通过,OpenAPI 类型生成和生产构建成功。仍有单包大于 500 kB 的体积提示。
- Forge 1.20.1、1.20.6、1.21.1、1.21.11:各 86 项平台测试通过,
test assemble全部成功;包括内容协议、限流和原生注入签名检查。 - 四个模组包和独立辅助程序位于根
dist,已验证模组包含最新页面index-CBjZQoZZ.js与更新实现;校验值已更新。 - 本轮没有运行 Minecraft 客户端或服务器,没有改动现有世界或将模组安装到运行目录。旧版专服启动记录不作为本轮自动更新联机验收。