Skip to content

Releases

CloudStorage 0.2.3 · AxShulkers 共存适配

Choose a tag to compare

@Moeary Moeary released this 25 Oct 10:41

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 · 面板正常重启检查点修复

Choose a tag to compare

@Moeary Moeary released this 25 Oct 02:17

CloudStorage v0.2.2 · Paper 1.21.1 / Java 21

修复 MCSM 等面板直接启动 JAR 时,正常 stop、世界保存完成后仍反复冻结云仓的问题。客户端打印机 1.1.5-cloud.1+1.21.1 无需更新。

先看升级说明

旧版已经冻结的仓库,不会仅凭 pending=0 自动解锁。

  1. 正常停服,联合备份 plugins/CloudStorage/ 与全部世界/玩家数据。
  2. 用附件 cloud-storage-0.2.2.jar 替换旧 CloudStorage JAR,同一服务端只保留一个版本,再启动。
  3. 若旧状态仍显示冻结,先 cs status、cs recover list。核对旧停服日志和近期物品转移后,若无待处理转移且实际数量一致,由管理员执行 一次 cs recover unlock,再 cs status 确认。
  4. 此后正常 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

Choose a tag to compare

@Moeary Moeary released this 25 Oct 01:45

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

Choose a tag to compare

@Moeary Moeary released this 25 Oct 01:21

CloudStorage 0.2.0-SNAPSHOT,适用于 Paper 1.21.1 / Java 21。这是供进一步游戏实测的预发布版本。

更新内容

  • UUID 个人云仓、全服共享仓,命令与 54 格分页 GUI 存取。
  • 云仓下排新增指南针搜索按钮:点击后聊天输入中文、英文或 ID,内容不公开;右键清除筛选。支持 /cs search 平滑石。
  • 云潜影盒 v3 按需目录:配套打印机请求所需材料,只展示一种可用材料,保留 26 格回填空间。
  • 统一拒收装备、工具、潜影盒、玩家头颅和带 ItemMeta 的特殊物品;新入库仅接受普通可堆叠物品。升级前的特殊存量仍可取出。
  • 自有木桶世界输入/输出接口;SQLite 事务账本、异常停机冻结和人工审计恢复。

安装与使用

  1. 正常停止 Paper,联合备份世界、玩家数据和 CloudStorage 数据库。
  2. 将附件 cloud-storage-0.2.0-SNAPSHOT.jar 放入服务端 plugins/,移走旧 CloudStorage JAR 后正常启动。禁止 /reload。
  3. /cs 打开云仓;/cs mode personal|shared 切换仓库。共享仓需要 cloudstorage.shared 权限。
  4. 按需打印需配套 打印机 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;未包含测试世界、玩家数据、数据库或账号文件。