跳到主要内容

分世界背包

把世界分成群组,玩家跨群组时自动换成那个群组的背包。常见用法:创造世界、小游戏世界、活动世界各自独立。

开启​

  1. 设好群组:
/cw group create creative
/cw group add creative creative_world
/cw group add creative creative_nether
  1. config.yml 打开 inventories.enabled: true,执行 /cw reload。

没有写在任何群组里的世界都属于 default 群组,彼此共用。所以只要把「要独立的世界」放进群组即可,主世界、地狱、末地不用设定。

分开哪些资料​

inventories.yml 的 shares(所有群组一致):

项目内容
inventory背包、盔甲、副手、选中的格子
enderchest末影箱
health血量
food饱食度、饱和度
exp等级与经验
effects药水效果
/cw group shares inventory enderchest exp # 只分背包、末影箱、经验
为什么所有群组用同一组 shares

如果 A 群组分开经验、B 群组不分,玩家在两边来回时经验会被其中一边覆盖掉。统一设定可以保证任何资料都不会被误盖。

安全机制​

  • 资料存在 plugins/CloudWorlds/inventories/<群组>/<玩家UUID>.yml,在后台线程依序写入,写入先写临时文件再改名,写到一半断电也不会坏。
  • 读取失败(文件损坏)时不切换,玩家保留目前的背包并收到提示,不会被清空。
  • 登录时如果玩家所在世界的群组和上次不同(例如你改了群组设定),会自动换成正确的背包。
  • 第一次进入某个群组时是全新的:空背包、满血、满饱食度、0 经验。

cloudworlds.inventory.bypass 的玩家不受影响(所有世界同一个背包)。