GlymeraDeadChest

GlymeraDeadChest

死亡时,你的完整物品栏(背包、快捷栏、盔甲、手持工具)会被封存在死亡位置的自定义坟墓方块中。仅限所有者,可配置。每位玩家的坟墓存在时间与数量上限。防破坏。坟墓永不掉落。

生活质量

GlymeraDeadChest - 死亡物品存入坟墓

死亡时,你所有的物品(背包、快捷栏、护甲、手持工具)都会被放入你死亡位置的坟墓方块中。在倒计时结束前取回它们。

⚠️ 兼容性说明:GlymeraDeadChest 和 GlymeraRevive 都会在死亡时接管玩家的物品栏,二者互不兼容 — 只能安装其中一个,切勿同时安装。

当前版本仅适用于 Hytale 稳定版 5!不要错过我的其他精彩项目 — 查看 GlymeraCraft 的主页 Discord: https://discord.gg/s5NRFWfxgy


什么是 GlymeraDeadChest?

当玩家死亡时,他们的整个物品栏通常会掉落在地面上并消失。GlymeraDeadChest 用坟墓方块替代了这种方式,安全地存放物品直到主人回来。设计为防破坏:坟墓不会作为物品掉落,无法被其他玩家摧毁,并且可以抵御下方的地形编辑。

自带资源包,包含三种自定义坟墓方块类型。 世界中的标准箱子和墓碑不受此插件影响。


功能特性

死亡捕获

  • 死亡时捕获所有物品:背包、快捷栏、护甲以及当前手持的工具
  • 在死亡位置生成坟墓方块(如果位置被占用,则最多向上偏移 5 格)
  • 如果找不到空位,物品将作为后备方案正常掉落
  • 创造模式玩家被跳过(与 Hytale 创造模式默认不掉落的行为一致)

三种自定义坟墓方块类型

在配置中选择一种:

  • GlymeraGrave_Tombstone (默认) - 看起来像石头墓碑
  • GlymeraGrave_Coffin - 看起来像石头棺材
  • GlymeraGrave_Chest - 看起来像木箱子

这三种都是插件独占方块,没有合成配方,破坏时不会掉落物品,也不需要支撑。它们与原版 Hytale 模型视觉上相同,但在功能上与常规家具方块相区分。

防破坏

  • ownerOnly 为 true 时(默认),坟墓方块无法被其他玩家损坏或破坏
  • 坟墓方块无需支撑 - 移除下方地板不会破坏它们
  • 坟墓方块具有空掉落列表 - 即使被强制也不会产出任何物品
  • OP 始终可以交互(管理员覆盖)

每位玩家限制

  • 每位玩家可以拥有可配置数量的活跃坟墓(默认:3 个)
  • 当达到限制且需要生成新坟墓时,最旧的坟墓连同其内容物会被自动丢弃

存在时间计时器

  • 每个坟墓都有可配置的存在时间(默认:15 分钟,服务器墙钟时间)
  • 到期后,坟墓方块及其所有物品将被移除
  • 服务器停机时间会计入计时器
  • 过期的坟墓会在服务器启动时立即清理

用于查看物品栏的自定义 UI

  • 右键点击坟墓可打开自定义 UI,显示所有存储物品的数量和剩余时间
  • “全部取回”按钮可一键将所有物品转回玩家的物品栏
  • 无法容纳的物品将掉落在坟墓位置

墓碑的破坏模式

  • 墓碑风格的坟墓(无使用交互)可以被破坏以取回物品 - 所有存储的物品直接进入物品栏,放不下的则掉落在地上
  • 坟墓方块本身永远不会作为物品掉落

持久化

  • 坟墓数据以 JSON 格式按坟墓 UUID 存储在 plugins/GlymeraDeadChest/data/
  • 可跨服务器重启和区块卸载保存
  • 所有者映射、世界、坐标、物品(含耐久度和元数据)以及生成时间戳都会被保留

命令

所有玩家可用

命令 描述
/grave/grave list 打开一个 UI,列出你的活跃坟墓,包含世界、坐标、物品数量和剩余时间

仅限 OP

命令 描述
/grave admin list 在聊天中列出服务器上的所有坟墓
/grave admin remove <id-prefix> 移除指定坟墓(按 ID 前缀匹配)

配置

config.json(plugins/GlymeraDeadChest/config.json

graveBlock        : GlymeraGrave_Tombstone   (或 _Coffin / _Chest)
lifetimeMinutes   : 15
maxActiveGraves   : 3
ownerOnly         : true
字段 描述
graveBlock 要生成哪种自定义坟墓方块。插件提供的选项:GlymeraGrave_TombstoneGlymeraGrave_CoffinGlymeraGrave_Chest
lifetimeMinutes 坟墓在(及其内物品)被删除之前存在的时间
maxActiveGraves 每位玩家同时拥有的最大坟墓数量。超过时,最旧的会被丢弃
ownerOnly 如果为 true,只有所有者(和 OP)才能破坏、损坏或打开坟墓。如果为 false,任何人都可以

坟墓数据(plugins/GlymeraDeadChest/data/<uuid>.json

自动管理 - 每个坟墓一个 JSON 文件,包含所有者 UUID、位置、物品列表(含耐久度和元数据)、方块类型和生成时间。


安装

  1. GlymeraDeadChest-1.0.0.jar 放入服务器的 mods/ 文件夹
  2. 启动(或重启)服务器
  3. 完成!首次运行时会自动生成配置。

工作原理

坟墓生成流程

  1. 玩家死亡(非创造模式)
  2. 插件在 Hytale 的默认物品掉落系统之前运行
  3. inventory.dropAllItemStacks() 清空物品栏并返回所有物品堆栈(包括护甲和工具)
  4. 如果在死亡位置附近找到空位,则放置配置的坟墓方块
  5. 所有者 UUID、世界、坐标、所有物品和生成时间戳被持久化到磁盘
  6. 默认的 Hytale 掉落逻辑发现物品栏为空,不产生任何掉落

所有者保护

插件注册了三个 ECS 事件系统:

  • DamageBlockEvent - 取消非所有者的方块损坏(防止用工具挖掘坟墓)
  • BreakBlockEvent - 取消非所有者的破坏尝试
  • UseBlockEvent.Pre - 取消原生交互并将所有者的点击路由到自定义 UI

OP 绕过所有所有者检查(管理员覆盖)。

抗掉落能力

自定义坟墓方块类型定义为无 Support 字段和 Material: Solid,这使物理系统将其视为悬浮装饰 - 它们永远不会因失去地面支撑而掉落。作为纵深防御,插件还会在每个坟墓方块上调用 BlockPhysics.markDeco()


需要注意

  • 坟墓方块的内容不存储在原生 Hytale 容器中 - 插件维护自己的 JSON 状态。这意味着无论玩家解锁了多少背包槽位,坟墓都可以容纳其完整物品栏
  • 墓碑和棺材变体不响应右键点击(资源中没有使用交互)。它们只能破坏 - 挖掘方块以取回物品
  • 箱子变体目前与其他变体行为相同(破坏以取回),因为最小方块定义没有使用交互。未来版本可能会添加使用交互以直接打开自定义 UI
  • 所有坟墓方块仅由本插件添加,没有合成配方 - 玩家无法通过正常游戏获得它们
  • 坟墓计时器每 30 秒触发一次,因此在最坏情况下,坟墓可能会在配置的存在时间之后多存留约 30 秒

由 Glymera 为 Hytale 社区精心制作