行囊

行囊

一个可靠的背包模组,支持可配置尺寸和快捷键。

旅行背包 (TravelBag)

旅行背包是一款免费且可靠的 Fabric 背包模组,支持可配置的尺寸、可选的 LuckPerms 权限支持、智能的基于文件的存储,以及一个内置的快捷物品,方便快速访问。

它被设计为在真实服务器上安全使用:

  • 每位玩家都有自己独立的旅行背包存储
  • 存储格式内部始终保持 6 行的空间
  • 降低权限或配置尺寸不会删除隐藏的物品
  • 备份创建安全,不会生成嵌套的备份文件
  • 每个玩家文件自动轮换保留最新的 2 个备份
  • 物品数据使用注册表感知编解码器进行序列化,确保附魔和其他组件完好无损
  • 不安全的背包数据会被锁定,而不是被静默覆盖
  • 无需客户端模组

✨ 功能特性

  • 可配置旅行背包尺寸,从 1 到 6 行
  • 可选的 LuckPerms 集成,用于尺寸和功能权限
  • 玩家背包满时可选自动拾取功能
  • 可选的快捷头颅物品,用于快速打开旅行背包
  • 可配置旅行背包快捷头颅物品
  • 每个玩家独立的旅行背包文件,按 UUID 存储
  • 自动备份支持及轮换机制
  • 物品过滤器支持
  • 潜影盒限制开关
  • 配置重载命令
  • Mod Menu 集成
  • 可选的 Cloth Config 支持,提供游戏内配置界面

⚙️ 配置亮点

旅行背包使用简单的 properties 配置文件:config/travelbag/travelbag.properties

重要选项包括:

  • 所有者与非所有者视角的标题
  • 死亡时掉落行为
  • keepInventory 交互
  • 默认尺寸
  • LuckPerms 开关
  • 冷却时间
  • 快捷物品开关
  • 快捷物品首选槽位
  • 打开音效开关
  • 打开音效 ID
  • 自动拾取设置
  • 潜影盒限制
  • 物品过滤器
  • 允许的游戏模式
  • 命令别名

🔄 命令

/travelbag - 打开自己的旅行背包 /travelbag help - 显示可用的旅行背包命令 /travelbag clean - 移除自己旅行背包中的所有物品 /travelbag clean <玩家> - 移除另一个玩家旅行背包中的所有物品 /travelbag sort - 整理并排序自己的旅行背包 /travelbag <玩家> - 打开另一个玩家的旅行背包 /travelbag backup - 为所有旅行背包数据文件创建备份 /travelbag restore <玩家> <latest|previous> - 预览锁定旅行背包的有效备份 /travelbag restore <玩家> <latest|previous> confirm - 在 60 秒内恢复预览的备份 /travelbag reload - 重新加载配置文件

命令别名可配置,默认为: /bp 和 /backpack

🤷🏻‍♂️ 存储机制详解

旅行背包将玩家数据存储在 Fabric 配置目录中:config/travelbag/players/

每位玩家根据其 UUID 获得一个独立文件。旅行背包在内部始终保持最多 6 行的存储空间,即使玩家当前只能访问较少的行数。

这意味着:

  • 当玩家权限被降低时,隐藏的行会得以保留
  • 重新提升尺寸或权限时,这些物品会再次显示
  • 整理功能可以在可能的情况下将可堆叠物品向上移动到可见行中
  • 物品序列化使用注册表感知编解码器,以保留附魔和其他现代物品组件
  • 如果旅行背包无法安全解码背包文件,该背包将被锁定,以防止意外覆盖或物品丢失

备份文件格式如下:

  • <uuid>.dat
  • <uuid>.backup.1.dat - 最新备份
  • <uuid>.backup.2.dat - 之前的备份

旧版旅行背包生成的 <uuid>.backup.dat 文件,在没有轮换的最新备份时,仍可作为最新的恢复候选项。

备份创建时机:

  • 服务器启动时
  • 执行 /travelbag reload 时
  • 执行 /travelbag backup 时
  • 每 10 分钟自动创建,但仅当旅行背包数据自上次备份以来发生变化时

如果某个背包文件无法安全解码,旅行背包还会创建一个带时间戳的故障快照,然后才拒绝继续保存该背包。

被锁定的背包只能由拥有 travelbag.restore 或总管理员权限 travelbag.admin 的管理员恢复。目标玩家必须处于离线状态,且该背包必须已关闭所有查看界面。旅行背包会在确认前验证所选的备份,对当前数据文件创建快照,以原子方式替换,验证恢复后的数据,并在验证失败时自动回滚。

🎒 快捷物品

旅行背包可以给予玩家一个快捷头颅物品,用于快速打开其背包。

快捷物品具有以下特性:

  • 可以在全局启用或禁用
  • 支持可配置的头颅纹理
  • 可以在玩家的背包和快捷栏中自由移动
  • 不能放入旅行背包内
  • 不能放入箱子或末影箱内
  • 不能正常丢弃
  • 如果出现重复,会自动归一化

显示的快捷名称使用玩家名称,例如:

  • Alex 的旅行背包
  • James 的旅行背包

🚗 自动拾取

如果启用,当玩家的背包满时,旅行背包可以收集附近的掉落物实体。

安全规则:

  • 被过滤的物品永远不会从地面移除
  • 被禁止的潜影盒永远不会从地面移除
  • 只有可以安全存储的物品才会被收集
  • 打开的旅行背包界面会与自动拾取变化保持同步

📊 权限

当启用 LuckPerms 支持时,旅行背包使用以下权限节点:

  • travelbag.use
  • travelbag.fullpickup
  • travelbag.size.1
  • travelbag.size.2
  • travelbag.size.3
  • travelbag.size.4
  • travelbag.size.5
  • travelbag.size.6
  • travelbag.clean
  • travelbag.clean.other
  • travelbag.sort
  • travelbag.others
  • travelbag.others.edit
  • travelbag.keepOnDeath
  • travelbag.noCooldown
  • travelbag.ignoreBlacklist
  • travelbag.backup
  • travelbag.restore
  • travelbag.reload
  • travelbag.bypass.gamemode
  • travelbag.admin

travelbag.admin 作为旅行背包管理功能的总管理员权限。

当 LuckPerms 支持被禁用时,旅行背包遵循配置文件中的回退值。仅限管理员的操作将回退到原版 OP / 游戏管理员级别。

🏜️ 测试服务器

欢迎加入我的 Minecraft 服务器来测试我的模组:play.swordfishbe.eu

💡 致谢/灵感

Fabric 模组创意基于 GeorgH93 的 Minepacks。