- ◆ 作者
- 老高
CubeSync 立方同步
CubeSync 是一个面向 Minecraft 整合包服主的云端同步系统:服主在管理端维护整合包版本,玩家启动客户端时自动检查、下载并按版本链同步文件,尽量把“发包、补丁、玩家落后多个版本、启动器误报崩溃”这些老大难问题一次处理干净。一句话就是"你更新模组更新各种配置文件,不必再为玩家的客户端更新而焦头烂额!"
开源仓库地址: https://gitee.com/gao-shixin/CubeSync
部署文档地址: https://www.xincraft.cn/guide/
------------------
如有问题可加Q群进行交流: 770460511
如有问题可加Q群进行交流: 770460511
如有问题可加Q群进行交流: 770460511
------------------
核心能力
云端管理系统:初始化基线整合包、创建版本、编辑文件、发布补丁。
版本链更新:玩家落后多个版本时,按 v0.1 -> v0.2 -> v0.3 逐个补丁同步。
补丁包分发:发布时记录新增、修改、删除、移动,并生成玩家可拉取的补丁包。
客户端遥测:记录启动、更新成功、拒绝更新、更新失败等事件。
数据分析大屏:玩家归属地、地区汇总、启动/更新统计。
双客户端方案:保留 Forge Mod + 外部更新器版本,同时新增 Java Agent 版本。
本地化部署友好:数据默认使用本地 JSON/YAML 思路,不强依赖 MySQL。
架构总览
仓库结构
CubeSync/├─ cubesync-cloud-server/ # Java 后端:管理 API、补丁发布、客户端接口
├─ cubesync-cloud-web/ # React + Vite 管理端和数据大屏
├─ cubesync-client/ # Forge Mod + 外部 Updater 旧方案
├─ cubesync-java-agent/ # Java Agent 新方案,推荐
├─ cubesync-docs/ # VitePress 文档站
├─ CUBESYNC_REQUIREMENTS.md # 需求说明
├─ CUBESYNC_FEATURES.md # 功能点说明
└─ CUBESYNC_PROJECT_PLAN.md # 项目策划
快速启动
1. 启动云端后端
cd cubesync-cloud-servermvn clean package
java -jar target/cubesync-cloud-server-0.1.0-SNAPSHOT.jar
默认地址:http://127.0.0.1:8080
2. 启动管理端
cd cubesync-cloud-webnpm install
npm run dev
浏览器打开:http://127.0.0.1:5173
3. 构建 Java Agent
cd cubesync-clientmvn -DskipTests install
cd ..\cubesync-java-agent
mvn -DskipTests clean package
产物:
cubesync-java-agent/target/cubesync-java-agent.jar
推荐放入客户端:
整合包根目录/
└─ .minecraft/
└─ CubeSyncConfig/
├─ cubesync-java-agent.jar
└─ cubesync-agent.properties
启动器 JVM 参数二选一:
-javaagent:.minecraft/CubeSyncConfig/cubesync-java-agent.jar
或:
-javaagent:CubeSyncConfig/cubesync-java-agent.jar
版本选择
| 方案 | 适用场景 | 优点 | 注意 |
|---|---|---|---|
| Java Agent | 新整合包、希望跨版本统一接入 | 启动前更新,不杀进程,启动器不误报崩溃 | 需要启动器支持 JVM 参数 |
| Forge Mod + Updater | 已经按 Mod 方案部署的旧包 | 可沿用现有流程 | 更新时可能需要外部更新器接管 |
文档站
cd cubesync-docsnpm install
npm run docs:dev
文档覆盖:
- 云端部署手册
- 管理端使用教程
- Java Agent 保姆级接入
- Forge Mod + Updater 接入
- 补丁链与故障排查
安全与边界
- 客户端必须携带后台生成的访问 Key 才能拉取更新。
- 补丁包下载后会进行 hash 校验。
- 路径写入通过安全路径规则限制,避免补丁逃逸到托管目录外。
- 断网默认放行,Key 错误、补丁链错误、hash 错误会阻断启动。