私人宝箱

私人宝箱

用墙牌保护箱子和桶!添加[private]来锁定容器,列出玩家名字以共享访问权限。阻止漏斗、爆炸和未经授权的打开。仅服务端。

游戏机制

为你的 Minecraft 服务器提供简单而强大的容器保护。 使用墙上的告示牌,写上 [private] 或 [public] 来保护箱子和木桶。无需复杂设置——只需放置一个告示牌,你的容器就受到保护了。

这个模组是做什么的?

Private Chests 是一个服务端 Fabric 模组,让玩家可以保护箱子和木桶免受其他玩家侵害。

在箱子或木桶上贴一个墙上的告示牌,并写上:

  • [private] 使其仅限所有者访问,并可选共享访问权限
  • [public] 让所有人都能打开,同时仍保护其免受破坏

该模组会自动处理保护——阻止未经授权的访问、防止箱子扩展漏洞、阻止漏斗盗窃,并保护容器免受爆炸和火焰破坏。

仅服务端——无需客户端模组。玩家可以使用原版客户端加入。


功能

🔒 简单的基于告示牌的保护

  • 在任何箱子或木桶上放置一个墙上的告示牌
  • 在第 1 行写上 [private] 或 [public]
  • [private] 支持在其余行添加其他玩家名称
  • 支持逗号分隔的名称:Player1, Player2
  • 告示牌两面均可使用

🛡️ 全面的安全性

  • 私有容器——只有所有者和列出的玩家可以打开
  • 公开容器——任何人都可以打开,但仍受保护
  • 防止箱子扩展漏洞——非所有者无法在受保护容器旁边放置箱子
  • 阻止漏斗盗窃——漏斗无法将物品移入或移出受保护的容器
  • 爆炸保护——TNT 和苦力怕无法摧毁受保护的容器
  • 火焰保护——火焰无法蔓延到受保护的容器
  • 告示牌保护——只有所有者或管理员可以编辑或破坏保护告示牌

🎮 玩家友好功能

  • 双箱子支持——自动处理双箱子
  • 所有者扩展——所有者可以将自己的单箱子扩展为双箱子
  • 轻松移除——直接破坏自己受保护的箱子/容器(自动移除保护)
  • 无需玩家命令——玩家只需使用告示牌

🌍 跨平台兼容

  • 通过 Floodgate/Geyser 完全支持基岩版
  • 基岩版玩家可以创建并使用受保护的容器
  • 可为基岩版玩家配置用户名前缀

⚙️ 管理员工具

用于服务器管理的命令:

  • /private_chests list
  • /private_chests list public
  • /private_chests list private
  • /private_chests list_in_area [radius]
  • /private_chests list_in_area [radius] public
  • /private_chests list_in_area [radius] private
  • /private_chests info <x> <y> <z>
  • /private_chests unlock <x> <y> <z>
  • /private_chests cleanup
  • 别名:/pchests

使用方法

创建私有容器

  1. 放置一个箱子或木桶
  2. 贴上一个墙上的告示牌
  3. 写上:

[private] PlayerName1 Player2, Player3

只有你和列出的玩家可以打开它。

创建公开容器

  1. 放置一个箱子或木桶
  2. 贴上一个墙上的告示牌
  3. 写上:

[public]

任何人都可以打开它,但只有告示牌所有者或管理员可以管理保护。

告示牌格式规则

  • [private] 和 [public] 必须仅在第 1 行
  • 标记不区分大小写
  • 标记可以在正面或背面
  • [private] 允许在其余行填写用户名
  • 所有者自动拥有访问权限

管理保护

编辑访问权限:

  • 编辑告示牌文本
  • 只有所有者或管理员可以编辑有效的保护告示牌

移除保护:

  • 从有效告示牌上移除保护标记
  • 或直接破坏自己受保护的箱子/容器

休眠告示牌:

  • 如果受保护的容器已经有一个有效的保护告示牌,额外的 [private] 或 [public] 告示牌不会自动接管
  • 只有在容器未受保护且告示牌所有者/管理员重新激活它们时,它们才会在之后变为有效

管理员命令

所有命令都需要管理员权限(可配置,默认等级 3)。

/private_chests list

显示服务器中所有受保护的容器。

/private_chests list public

仅显示公开的受保护容器。

/private_chests list private

仅显示私有的受保护容器。

/private_chests list_in_area [radius]

显示你所在位置附近的受保护容器。

/private_chests info <x> <y> <z>

显示详细信息:

  • 容器类型和位置
  • 所有者名称
  • 保护模式(private 或 public)
  • 允许的玩家
  • 创建时间戳
  • 最后更新时间戳

/private_chests unlock <x> <y> <z>

强制移除容器的保护。

/private_chests cleanup

移除已加载区块中过期的有效锁记录和休眠告示牌记录。


配置

配置文件:config/private-chests.json

{
  "floodgatePrefix": ".",
  "adminPermissionLevel": 3,
  "maxLocksPerPlayer": 0,
  "listMaxEntries": 50,
  "listPreviewEntries": 20,
  "disableProtectionIfOwnerBanned": true
}
选项 默认值 描述
floodgatePrefix . 基岩版玩家的前缀(例如 .BedrockPlayer)
adminPermissionLevel 3 绕过锁的权限等级(0-4)
maxLocksPerPlayer 0 每位玩家最多可保护的容器数量;0 = 无限制
listMaxEntries 50 /list 中在缩写前显示的最大锁数量
listPreviewEntries 20 缩写时显示的数量
disableProtectionIfOwnerBanned true 如果所有者被封禁,则移除保护

无效值会在启动时自动修正。


已知问题

由于 Minecraft 客户端预测机制,可能会出现一些轻微的视觉故障。

告示牌文本消失

当未经授权的玩家试图破坏受保护的告示牌时:

  • 告示牌在服务端保持完好
  • 客户端上的文本可能会暂时消失
  • 修复方法:左键或右键点击告示牌以刷新

物品在受阻时“消失”

当试图在受保护的容器附近放置方块时:

  • 放置会被服务器正确阻止
  • 物品可能会暂时从快捷栏中消失
  • 修复方法:切换到该槽位或移动物品
  • 物品实际上从未丢失

这些仅为客户端视觉问题。


技术细节

  • 仅服务端
  • 持久化数据存储在 world/data/private-chests.dat
  • 针对告示牌破坏的数据包级保护
  • 高效的查找和缓存
  • 支持 Minecraft 26.1.1

安装

服务器安装

  1. 下载模组 JAR
  2. 将其放入服务器的 mods 文件夹
  3. 确保也安装了 Fabric API
  4. 启动服务器
  5. (可选)调整 config/private-chests.json