跳到主要内容

背包保护与异常恢复

保存的状态

比赛开始前,插件持久化玩家的:

  • 背包、盔甲和副手。
  • 游戏模式、飞行状态和饥饿值。
  • 与 BodySize 联动相关的体型状态。
  • 其他比赛结束时必须恢复的玩家属性。

保存完成后才清空并发放比赛装备,避免在备份未落盘时改变玩家物品。

正常恢复

比赛结束、退出大厅或安全离场时,在玩家实体所有者上下文恢复备份。成功恢复后清除对应备份,避免同一份物品状态被重复应用。

玩家离线时不直接写离线玩家实时对象;备份保留到下次上线,登录流程会再次检查。

管理员恢复

/ccb check <玩家名或 UUID>
  • 需要 cubeball.admin
  • 可由玩家或控制台执行。
  • 目标必须在线且存在备份,才在目标玩家实体上下文恢复。
  • 目标离线时保留备份,不直接修改离线数据。
  • 命令不会创建第二份备份或第二份物品。

备份目录

plugins/<CubeCubeBall 数据目录>/inv_backup/

不要在服务器运行时编辑或删除文件。人工处置前先备份整个目录,并记录玩家、UUID/名称识别模式、比赛场地和控制台日志。

防重复与清理原则

  • 恢复成功后清除对应票据/备份引用。
  • 物品和 Inventory 读写只在玩家实体上下文进行。
  • 任务失败、实体退休和插件关闭都必须有终止路径。
  • Region 线程不等待磁盘或另一个 Region 的同步结果。