GlymeraMegaChest

GlymeraMegaChest

仅限主人的大容量存储箱,拥有1080个格子,每个格子可存放多达100万件物品(总计约10亿件)。分页用户界面,支持搜索。一键存入背包。在炼金台制作。

生活质量

简短描述(CurseForge 字段)

仅限主人使用的大容量存储箱,拥有 1080 个槽位,每个槽位最多可容纳 100 万件物品(总计约 10 亿件)。有两种变体:独立的巨型箱和网络箱,后者在你放置的所有网络箱中共享一个按主人划分的物品池。支持分页界面、搜索、一键存入物品。在炼金台上制作。

最新版本仅适用于 Hytale stable 5! 不要错过我其他激动人心的项目——请查看 GlymeraCraft 的个人资料 Discord: https://discord.gg/s5NRFWfxgy


GlymeraMegaChest - 一个箱子,十亿物品

什么是 GlymeraMegaChest?

两种紫色调方块箱子,可转化为真正的大容量存储容器。每个箱子拥有 1080 个虚拟槽位,分布在 10 页中,每页 108 个,默认情况下每个槽位最多可容纳 999,999 件物品。这意味着每个箱子大约可容纳 十亿件物品

提供两种变体:

  • 巨型箱(Mega Chest) — 一种带有强烈紫色调的皇家魔法箱。每个放置的箱子都是独立的存储空间。你可以随意放置,每个箱子都有自己的内容。
  • 网络箱(Network Chest) — 一种带有柔和薰衣草色调的圣殿光明双箱。你放置的每个网络箱共享一个按主人划分的物品池。 在一个网络箱中放入物品,它会立即在你拥有的所有其他网络箱中可用——跨越不同世界,跨越不同建筑。非常适合城堡、村庄定居点或主题建筑,在这些地方你想要在不同房间放置工作台,但所有工作台都从一个库存中取用。

两种箱子都不是基于 Hytale 的原生容器系统构建的;存储数据保存在服务器端的 JSON 文件中(对于巨型箱是每个箱子一个文件,对于网络箱是每个主人一个文件),内容通过相同的自定义 UI 界面显示,支持分页、搜索和“存入物品”按钮。当玩家存入箱子时,快捷栏物品保持装备状态,同时三层保护系统阻止陌生人访问。


制作方法

两种变体均在 炼金台(Alchemybench)上制作(分类:Alchemy_Potions):

巨型箱:

  • 1x Furniture_Royal_Magic_Chest_Small
  • 2x Ingredient_Life_Essence_Concentrated

网络箱:

  • 1x Furniture_Temple_Light_Chest_Large
  • 3x Ingredient_Life_Essence_Concentrated

可以在服务器范围内为两种变体禁用制作功能;OP 仍然可以通过 /megachest give/megachest givenet 指令发放箱子。


工作原理

放置与归属

手中持有箱子物品时右键点击即可放置。放置的玩家成为主人。

  • 巨型箱 将世界、位置和主人 UUID 存储在 plugins/GlymeraMegaChest/chests/<uuid>.json 文件中。每个放置的箱子拥有自己的文件和内容。
  • 网络箱 将其方块位置存储到你的按主人划分的物品池文件中,路径为 plugins/GlymeraMegaChest/network/net:<owner-uuid>.json。放置第二个网络箱后,同一个物品池文件会添加一个新的位置条目——从现在起,两个箱子都将打开相同的物品。

两种箱子类型都能在服务器重启和区块卸载后幸存。

打开箱子

右键点击已放置的箱子。自定义 UI 将打开,包含:

  • 标题栏:显示主人名称以及 1080 个槽位中已使用的数量
  • 页眉:左侧是“存入物品”按钮,中间是搜索栏,右侧是页面导航(< 1 / N >
  • 槽位网格:每页 108 个槽位,每个槽位显示物品图标、品质背景、数量以及耐久度百分比(如果物品耐久度未满)
  • 页脚:关于点击绑定的简短提示

存入物品(存入物品)

点击 存入物品(Deposit Inventory) 按钮,你背包和物品栏中的 全部 物品将被转移到箱子中下一个空闲槽位。 快捷栏保持不变,因此装备的武器和工具保持原位。可堆叠物品会与同类现有堆叠合并(匹配耐久度和元数据),直到达到配置的每槽上限。

如果从你的物品栏中转移任何物品失败,箱子的条目将自动回滚,因此无法复制。

取出物品

  • 左键点击 一个槽位:将 100 件物品(一个正常堆叠)取入你的物品栏
  • 右键点击 一个槽位:将 4500 件物品(= 9 个快捷栏 + 36 个物品栏槽位 * 100 件物品,即一个空物品栏能容纳的最大数量)取入你的物品栏
  • 任何无法容纳的物品将留在箱子中

这些限制是特意硬编码的,与玩家物品栏的计算逻辑相关;它们不在配置文件中。

搜索

UI 顶部的搜索栏可以实时过滤槽位。匹配基于 两种 技术物品 ID(例如 Plant_Crop_Pumpkin_Item)和“简化”形式(pumpkin),因此用户友好的术语也能生效。不匹配的槽位将被隐藏,页面数量随之调整。清空搜索栏即可恢复所有显示。

关闭时自动整理

当你关闭 UI 时,箱子内容会按字母顺序排序,并且相同物品的可堆叠槽位会合并。因此即使经过一次混乱的存入操作,下次打开时箱子也会是整齐的。

耐久度感知

耐久度降低的物品会显示一个百分比标签(左上角,颜色编码为绿/黄/红)。关键是,受损物品永远不会与满耐久度物品堆叠合并——Hytale 自身的 isStackableWith 检查确保每个受损物品保留自己的槽位,这样取回时你会得到相同的物品和相同的状态。

破坏与物品安全

巨型箱 在仍包含物品时无法被破坏。尝试破坏非空箱子时,你会看到消息 "清空箱子后再破坏它(剩余 X 堆叠)"。一旦箱子为空,主人(或 OP)可以正常破坏它并取回箱子物品。

网络箱 使用更智能的规则,适合共享物品池模型:

  • 你的网络中有多个网络箱:可以自由破坏任何箱子。物品池仍可通过你其他的网络箱访问。物品永远不会掉落——它们保留在物品池中。
  • 你的网络中最后一个网络箱:仅在物品池 为空 时才能破坏。如果物品池中仍有物品,你会看到 "这是你最后一个网络箱。请先清空存储空间或放置另一个网络箱。" 这可以保护你,防止意外将自己锁在物品之外。先放置另一个网络箱,或者取出所有物品,然后再破坏。

陌生人无法损坏、破坏或打开这两种箱子类型(三层保护:DamageBlock + BreakBlock + UseBlock)。

两种箱子模型都是 掉落安全的:箱子周围的物理变化(例如挖掘方块下方的方块等)永远不会导致它们作为掉落物品掉落。箱子会停留在被放置的位置。


指令

指令 适用对象 描述
/megachest 所有人 显示可用的子命令和当前设置
/megachest give 仅 OP 给自己一个巨型箱物品
/megachest givenet 仅 OP 给自己一个网络箱物品
/megachest reload 仅 OP 无需重启服务器即可重新加载 config.json

配置

文件位置: plugins/GlymeraMegaChest/config.json(首次启动时创建)

设置项 默认值 描述
slotsPerPage 108 每页 UI 显示的槽位数
pages 10 总页数(容量 = slotsPerPage * pages
maxStackPerSlot 999999 每个箱子槽位可容纳的物品数量。理论最大值是 Java 整数限制(约 21 亿);物品返回玩家时会根据每个物品实际的 MaxStack 正确拆分。对于大数量,显示会切换为紧凑格式(12K3.5M1.2B)。
craftingEnabled true 如果为 false两个 炼金台配方都将被取消,并显示聊天消息。OP 仍然可以使用 /megachest give/megachest givenet
ownerOnly true 如果为 true,只有放置的玩家(或 OP)才能打开/损坏/破坏箱子。适用于两种变体。

编辑文件后,运行 /megachest reload


持久化

存储布局取决于箱子变体:

  • 巨型箱:每个箱子一个文件,位于 plugins/GlymeraMegaChest/chests/<uuid>.json,包含主人、位置和物品。
  • 网络箱:每个主人一个文件,位于 plugins/GlymeraMegaChest/network/net:<owner-uuid>.json,包含主人、主人放置的所有网络箱位置列表以及共享物品。

对于两种变体:

  • 服务器重启:箱子和内容得以保留
  • 区块卸载:数据存在于区块外部;放置和内容不受影响
  • 方块更新保护:启动时以及之后每 60 秒,插件会重新将每个箱子方块标记为装饰品,这样附近的物理变化不会导致其掉落
  • 空巨型箱会保留,直到被破坏;只有合法的破坏才会删除 JSON 文件
  • 网络物品池会保留,只要主人至少放置了一个网络箱 或 物品池中仍有物品。当两者都归零时,物品池文件将被移除。

特性

  • 两种箱子变体:独立的巨型箱和带有按主人划分共享物品池的网络箱
  • 1080 个槽位 / 分页 自定义 UI(可配置)
  • 每个槽位默认最多 999,999 件物品(可配置,最高约 20 亿)
  • 三层主人专属保护(DamageBlock + BreakBlock + UseBlock)
  • 掉落安全方块(Material:Solid + DropList:Empty + markDeco),永远不会因物理变化而掉落
  • 自定义 UI,带有物品图标、品质背景、耐久度百分比(彩色编码)、紧凑格式数量显示