Repository navigation
Releases
CloudStorage 0.2.3 · AxShulkers 共存适配
Paper 1.21.1 / Java 21。实验性预发布,配套 打印机 1.1.5-cloud.2。
允许保留官方 AxShulkers 1.24.0:普通潜影盒继续使用 Ax 的右键开盒和真实库存;云潜影盒及云仓窗口由 CloudStorage 独占处理,阻止目录被其他开盒器当成真实方块取走。无需替换 Ax JAR 或修改其配置/数据库。
/cs status增加shulker-isolation=ready|blocked;未知 Ax 版本或监听器布局仍阻止云盒。- 配套 cloud.2 打印机缺料时先查本人云盒,云仓无库存后回退实体盒;背包槽位顺序不影响云盒优先级。
- 保留默认共享仓、普通玩家接口 5+5、中文搜索、特殊物品禁存及 0.2.2 正常停机检查点修复。schema 仍为 1,不搬迁或删除库存。
升级:先联合备份数据库/玩家/世界,正常 stop 后替换 CloudStorage JAR(只保留一个),保留整个 plugins/CloudStorage 目录,启动后检查隔离状态。保留 AxShulkers 1.24.0;其他开盒插件尚未逐项适配。旧冻结仍须审计后人工确认,不自动解锁。
验证:27 项 Java + 5 项 Python;官方 Ax 的非 OP 开盒/回填守恒、正常重启、未知版本保护均通过。完整 Fabric 模组组补料实测:云盒优先 411 ms、实体盒回退 1256 ms、满背包换料 343 ms,无 PENDING。原功能与正常/异常停机完整回归通过;最终发布 JAR 另跑共存回归 72.7 秒通过。详情见源码 docs/testing-0.2.3.md。不是大型投影全流程或正式 MCSM 现场验收。
附件包含生产 JAR、该提交的完整源码 ZIP、SHA256SUMS.txt。未部署到正式服务器或修改实际客户端。
CloudStorage 0.2.2 · 面板正常重启检查点修复
CloudStorage v0.2.2 · Paper 1.21.1 / Java 21
修复 MCSM 等面板直接启动 JAR 时,正常 stop、世界保存完成后仍反复冻结云仓的问题。客户端打印机 1.1.5-cloud.1+1.21.1 无需更新。
先看升级说明
旧版已经冻结的仓库,不会仅凭 pending=0 自动解锁。
- 正常停服,联合备份
plugins/CloudStorage/与全部世界/玩家数据。 - 用附件
cloud-storage-0.2.2.jar替换旧 CloudStorage JAR,同一服务端只保留一个版本,再启动。 - 若旧状态仍显示冻结,先
cs status、cs recover list。核对旧停服日志和近期物品转移后,若无待处理转移且实际数量一致,由管理员执行 一次cs recover unlock,再cs status确认。 - 此后正常
stop和启动会使用新退出凭据,不需每次手动解锁,也不需在 MCSM 中安装 Python 或修改启动命令。
存在 PENDING、强杀或存盘故障时应审计,不可随意选择 before/after。不要删除数据库、手改 active 或设置开服自动解冻。
修复方式
- onDisable 仍只准备停机候选,不提前清除 dirty。
- 在 Paper 完成玩家/世界 I/O、报告完整正常退出后,JVM 关闭钩子写入与 session 绑定的原子退出凭据;数据库仍不在钩子中解冻。
- 下次启动再核验旧进程身份已退出、凭据与候选/会话一致且无 PENDING,才识别为正常停机。
- 强杀、插件已卸载但世界尚未保存完就中断、热卸载、Paper 异常退出、旧/坏凭据与未完成转移继续冻结。
- 保留默认全服共享仓、普通玩家共享仓/接口权限、每 UUID 输入 5+输出 5、中文搜索及按需打印协议。
实际验证
- 27 项 Java 测试、5 项 Python 测试通过,包含独立子 JVM 凭据与存活进程/旧凭据/PENDING 拒绝。
- 与正式服相同的 Paper 1.21.1 build 116:连续三轮直接启动/正常停服,实际 JVM 退出码均为 0,未使用外部 finalizer,未再误冻结。
- Paper build 133 完整回归通过:普通玩家共享仓/接口 5+5、物品守恒、精准放置、两次独立正常重启、强杀、onDisable 后保存未完成时强杀、热卸载、异常退出和初始化失败保护。测试启动器不再偷偷调用外部 finalizer。
测试为隔离的真实 Java/Paper 进程,模拟面板直接启动方式;并未远程修改正式服务器。完整记录见 testing-0.2.2.md。本版本仍作为测试发布,复杂投影整体建造及大型服性能须继续实测。
附件包含已验证的生产 JAR、对应提交源码及 SHA256SUMS.txt;生产 JAR 不含测试 probe,源码包保留测试源码,不包含世界、账号或数据库。凭据文件 storage.sqlite.shutdown.properties 应与数据库一样受服务器文件权限保护,切勿自行伪造。
CloudStorage 0.2.1-SNAPSHOT · 普通玩家共享仓与接口 5+5
CloudStorage 0.2.1-SNAPSHOT · Paper 1.21.1 / Java 21
修复 0.2.0 中普通玩家无法使用共享仓与世界接口的问题。本次只更新服务端插件,现有打印机 1.1.5-cloud.1+1.21.1 无需替换。
修复内容
cloudstorage.shared、cloudstorage.port默认授予所有玩家。恢复审计与管理权限仍默认仅 OP;权限插件显式设置的拒绝仍然有效。- 默认使用全服共享仓。普通玩家可
/cs mode shared、/cs mode personal切换。 - 每名玩家最多 5 个输入接口 + 5 个输出接口,两类分别计数;按 UUID 跨世界和个人/共享仓合并统计,切仓无法绕过。
/cs port list显示输入/输出占用;解绑释放对应名额。他人的 UUID 不能占用自己的配额或擅自解绑接口。- 旧配置首次启动迁移至
config-version: 2,设置默认 shared,替换旧接口合计限制;不搬动仓库资产,不删除已有接口或玩家模式选择。
升级
正常停服并联合备份世界、玩家数据与数据库,用附件 JAR 替换旧 CloudStorage JAR 后正常启动,禁止 /reload。
曾手动选择个人仓的玩家保留该选择,执行 /cs mode shared 即可进入共享仓。已绑定世界接口仍指向原仓库,切换模式不会自动改绑。
新配置为:
config-version: 2
default-mode: shared
ports:
max-inputs-per-player: 5
max-outputs-per-player: 5已有某类接口超过新上限时不会自动删除;先解绑至上限以下才能新增该类接口。新绑定仍须对准自己放置的木桶,输出接口须手持允许的物品样本。
验证
- 23 项 Java 测试、5 项 Python 测试通过,覆盖真实旧配置迁移、迁移幂等和独立方向配额。
- 真实 Paper + 非 OP 玩家验证默认共享、双向切仓、自动输入输出、5+5 成功、两类第六个拒绝、切仓不能绕过、解绑重绑、UUID 隔离及重启后绑定保留。
- 原有物品守恒、精准放置、异常停机冻结与初始化失败保护继续回归。
此为预发布版本,复杂投影整体建造与大型服务器性能仍需实测。附件提供 JAR、对应提交源码及 SHA256SUMS.txt,不包含游戏世界或用户数据。
CloudStorage 0.2.0-SNAPSHOT · Paper 1.21.1
CloudStorage 0.2.0-SNAPSHOT,适用于 Paper 1.21.1 / Java 21。这是供进一步游戏实测的预发布版本。
更新内容
- UUID 个人云仓、全服共享仓,命令与 54 格分页 GUI 存取。
- 云仓下排新增指南针搜索按钮:点击后聊天输入中文、英文或 ID,内容不公开;右键清除筛选。支持
/cs search 平滑石。 - 云潜影盒 v3 按需目录:配套打印机请求所需材料,只展示一种可用材料,保留 26 格回填空间。
- 统一拒收装备、工具、潜影盒、玩家头颅和带 ItemMeta 的特殊物品;新入库仅接受普通可堆叠物品。升级前的特殊存量仍可取出。
- 自有木桶世界输入/输出接口;SQLite 事务账本、异常停机冻结和人工审计恢复。
安装与使用
- 正常停止 Paper,联合备份世界、玩家数据和 CloudStorage 数据库。
- 将附件
cloud-storage-0.2.0-SNAPSHOT.jar放入服务端plugins/,移走旧 CloudStorage JAR 后正常启动。禁止/reload。 /cs打开云仓;/cs mode personal|shared切换仓库。共享仓需要cloudstorage.shared权限。- 按需打印需配套 打印机 1.1.5-cloud.1。客户端设
useQuickShulker=true、shulkerSource=PLUGIN,执行/cs shulker auto并把云盒留在主背包三排;/cs shulker off移除云盒。
插件不包含精准放置协议插件;需要相关放置能力时应另行配置。不要让其他开盒插件同时处理云潜影盒,亦不要移除本插件后携带云盒使用原版取物路径。
验证与限制
- 19 项 Java 测试、5 项 Python 测试通过。
- 真实 Paper 四阶段回归通过:主测试、正常重启、强杀后冻结与审计恢复、初始化失败时保留云盒保护;额外验证精准放置 V2 漏斗/告示牌消耗守恒。
- 完整 Fabric 模组组合以非 OP 玩家连接真实 Paper,按需取料 351 毫秒、满背包换料 343 毫秒;服务端账本守恒、无 PENDING 事务。
- 尚未完成整张复杂投影建造或大型服务器性能验收;不承诺任意第三方插件组合与物理断电下绝对不丢物品。
详见 测试记录 与 安全边界。附件包含 JAR、对应提交源码和 SHA256SUMS.txt;未包含测试世界、玩家数据、数据库或账号文件。