CuriosSync 是一个 Bukkit 插件,用于在多台后端服务器之间同步玩家的完整 Curios 饰品栏数据。
非 1.21.1 版本没有测试过。
Curios 就是 https://www.mcmod.cn/class/2029.html
插件只需放入 plugins 目录;Curios 和相关饰品模组仍正常放在 mods 目录。所有后端服必须安装相同版本的 Curios、饰品模组,并使用一致的槽位配置。
server-id: "server-1"
database:
jdbc-url: "jdbc:mariadb://127.0.0.1:3306/minecraft"
username: "curiossync"
password: "change-me"
ssl-mode: "disable"
auto-create-schema: true
sync:
handoff-wait-ms: 5000
handoff-poll-ms: 250
MariaDB 驱动也可以连接 MySQL 服务端,建议统一使用 jdbc:mariadb
- `/curiossync status`:查看数据库与会话状态
- `/curiossync inspect <玩家名|UUID>`:查询玩家同步信息
- `/curiossync save <在线玩家>`:强制保存中心会话
- `/curiossync reconnect`:重新建立数据库连接池
隔离会话不能通过命令强制写入中心档。
非 1.21.1 版本没有测试过。
Curios 就是 https://www.mcmod.cn/class/2029.html
插件只需放入 plugins 目录;Curios 和相关饰品模组仍正常放在 mods 目录。所有后端服必须安装相同版本的 Curios、饰品模组,并使用一致的槽位配置。
环境要求
- Java 21
- Minecraft 1.21.1
- Arclight NeoForge 1.21.1
- NeoForge 21.1.x
- Curios 9.5.1+1.21.1
- MySQL 8+ 或 MariaDB 10.6+
主要功能
- 同步 Curios 完整压缩 NBT,包括功能栏、外观栏、显示状态、槽位大小、修饰器和物品数据组件。
- 玩家首次登录且数据库没有记录时,以当前服务器的本地 Curios 数据建立中心档。
- 使用数据库租约限制同一 UUID 同时只能由一台服务器写入。
- 保存带会话 token 和递增序号,避免旧服务器或乱序异步任务覆盖新数据。
- 监听饰品变化并防抖保存,同时定时比较完整快照,捕获外观栏和显示开关变化。
- 数据库故障时使用本服本地数据进入隔离会话,隔离会话不会回写中心数据库。
部署
- 创建数据库和专用账号,所有后端服连接同一个数据库。
- 将插件 JAR 放入每台 Arclight 的 plugins 目录。
- 首次启动生成配置后停止服务器,编辑 plugins/CuriosSync/config.yml。
- 每台后端服必须使用不同的 server-id,例如 lobby-1、survival-1。
- 完整重启服务器。
server-id: "server-1"
database:
jdbc-url: "jdbc:mariadb://127.0.0.1:3306/minecraft"
username: "curiossync"
password: "change-me"
ssl-mode: "disable"
auto-create-schema: true
sync:
handoff-wait-ms: 5000
handoff-poll-ms: 250
MariaDB 驱动也可以连接 MySQL 服务端,建议统一使用 jdbc:mariadb
命令
统一权限:curiossync.admin,默认仅 OP 拥有。- `/curiossync status`:查看数据库与会话状态
- `/curiossync inspect <玩家名|UUID>`:查询玩家同步信息
- `/curiossync save <在线玩家>`:强制保存中心会话
- `/curiossync reconnect`:重新建立数据库连接池
隔离会话不能通过命令强制写入中心档。
注意事项
- 使用服务端实际提供的 UUID;离线模式玩家改名可能生成新的中心档。
- 不支持 Bukkit /reload、PlugMan 或其他热重载方式,修改插件或配置后必须完整重启 Arclight。
- 正式上线前建议使用两台相同模组环境的测试服验证首次导入、快速切服、服务器崩溃恢复和数据库断开场景。