v0.1.4-rc.1 · 已支持 MC 26.2

Minecraft 资源包
更新事件控制台与客户端同步

上传不可变资源包版本,定向玩家用户组,创建即时或预约更新事件。双端 Mod 在玩家登录时自动检查、下载并以 SHA-256 校验——告别手动换包与版本混乱。

纯 Go 后端 + SQLite Forge / Fabric / NeoForge MIT 开源
3
支持 Minecraft 版本
3
支持模组加载器
0
运行时 JVM 依赖
zh/en/ja
管理控制台语言
功能特性

从上传到校验,一站式资源包生命周期管理

不可变版本 + 事件快照 + Diff 回退,让每一次资源包更新都可追溯、可回退、可审计。

不可变资源包版本

每次上传生成独立版本号,已发布版本永不覆盖。事件保存完整版本快照,回退也基于历史版本创建新事件。

即时与预约更新事件

创建立即生效或定时触发的更新事件。预约事件到点仅发送聊天提醒,由玩家自行触发下载,体验友好。

Diff 对比与一键回退

每个事件均可查看版本差异。回退会创建指向旧快照的新事件,需填写回退说明,全程可审计。

玩家用户组定向推送

内置 default / vip / staff 用户组,玩家首次登录自动注册。通过事件将不同资源包版本定向推送给指定用户组。

多语言管理控制台

Vue 3 管理控制台内置中文、English、日本語,自动检测浏览器语言。概览、资源包、事件、用户组、玩家、日志、设置一站式管理。

TOTP 双因素认证

管理员账号支持 6/8 位 TOTP 2FA(Base32 密钥)。面向公网的管理控制台强烈建议启用,配合 bcrypt 密码哈希。

SHA-256 校验与断点安全

客户端下载 UI 实时显示进度、速度与 ETA。下载完成以 SHA-256 + 文件大小校验,必装包标红、可选包标金。

纯 Go 后端,零 JVM 依赖

单一 Go 二进制同时支持 Windows 与 Linux amd64,内置 SQLite。运行时不依赖 JVM,启动即用、跨平台分发。

生产安全默认值

默认绑定 127.0.0.1;公网绑定强制强密钥、HMAC、安全 Cookie。非回环启动自动拦截弱密钥与明文 HTTP。

工作原理

六步完成一次资源包更新

从管理控制台上传到玩家客户端校验,全流程闭环。

01

上传资源包 ZIP

管理控制台上传,单遍流式写入并同步计算 SHA-1 + SHA-256,生成不可变版本。

02

保存不可变版本

相同包+版本+内容复用既有版本号,已发布版本永不被覆盖。

03

选择玩家用户组

为本次更新事件指定目标用户组(default / vip / staff 或自定义)。

04

创建更新事件

立即生效或预约到点。预约事件到点仅发送聊天提醒,不自动弹出下载。

05

玩家登录 / 主动检查

玩家进服或执行 /rpsync checkupdate 触发 Session Check。

06

下载并校验资源包

客户端从后端拉取,实时显示进度与速度,完成后以 SHA-256 校验。

架构设计

双端 Mod + 自托管后端,三层协作

服务端 Mod 解析玩家用户组与活动事件并调用后端;客户端 Mod 负责实际下载;Go 后端提供管理控制台与资源分发。Session Check 仅返回 PASSNEED_UPDATE

Go 1.25SQLiteVue 3

后端 Admin Panel

单一 Go 二进制,内置 SQLite + Vue 3 静态控制台。提供 Admin API、Session Check、资源包下载、事件轮询。WAL 模式、外键约束、5s 忙等待超时。

  • 无 JVM 依赖运行时仅需 Go 二进制
  • 跨平台分发Windows .exe + Linux 二进制
Javacommon

共享 Mod common 层

共享 DTO、JSON 序列化、协议类型(网络协议版本 "2")与安全工具(HMAC、SHA-256)。所有加载器实现共用同一协议层。

  • 统一协议rpsync:* 数据包 ID
  • HMAC 签名服务端请求防伪造
双端client + server

加载器实现

Forge / Fabric / NeoForge 各自实现。客户端注册 /rpsync 命令与下载 UI;服务端每 30s 轮询到期事件并发送聊天提醒。

  • 客户端命令checkupdate / settings / guide
  • 下载 UI进度 / 速度 / ETA 实时显示
支持版本

覆盖三个 Minecraft 版本 × 三大加载器

每个 JAR 仅声明一个精确 Minecraft 补丁版本,不承诺跨补丁二进制兼容。Fabric 始终需要 Fabric API。

MinecraftJavaForgeFabricNeoForge
1.20.1 17+ 47.2.0+ Loader 0.14.21+ 47.1.106
1.21.11 21+ 61.1.8+ Loader 0.19.3+ 21.11.42+
26.2 25+ 65.0.3+ Loader 0.19.3+ 26.2.0.7-beta

JAR 命名规则:rpsync-{loader}-mc{mcVersion}-{modVersion}.jar · MC 26.2 需 Java 25 编译与运行

快速开始

三步启动你的资源包同步

下载分发包,启动后端,配置 Mod——分钟即可跑通单机演示。

1 · 下载分发包

执行 ./gradlew.bat releaseArtifacts,产物按 MC 版本与加载器整理进 build/release/

2 · 启动后端

运行 start-backend.bat / .sh,脚本自动设置静态目录与数据目录。访问 /admin/login 登录。

3 · 配置 Mod

将匹配的 JAR 放入 mods 目录,首次运行生成 config/rpsync-common.toml。设置 baseUrl 指向后端即可。

本地构建产物
# 后端
cd backend/admin-panel
go test ./...

# 旧版 Mod (1.20.x) — JDK 21
./gradlew.bat :forge-1.20.x:test
./gradlew.bat :fabric-1.20.x:build
./gradlew.bat :neoforge-1.20.x:build

# 全量构建 + 整理发布产物
./gradlew.bat build
./gradlew.bat releaseArtifacts

准备好同步你的资源包了吗?

查阅完整文档,或直接从 GitHub 获取源码开始构建。