克罗南特罗尔的坟墓

克罗南特罗尔的坟墓

一个安全的服务器端坟墓系统,具备受保护的墓碑、经验恢复、指南针、分享和管理工具。

Kronentroll's Graves

保证你的物品安全。恢复你的经验。永远不会找不到你的坟墓。

Kronentroll's Graves 是一个适用于 Fabric 的安全且多人友好的坟墓模组。

当玩家死亡时,其物品栏、装备和精确经验值会被存储在一个受保护的坟墓中。如果没有可用的安全墓碑位置,内容将作为虚拟坟墓保留,而不会丢失。

打开墓碑可以恢复单个物品、一次性恢复全部内容,或使用坟墓指南针找到返回的路。


概览

  • 存储完整的玩家物品栏、盔甲和副手物品
  • 保留精确的经验值
  • 创建受保护的多部件墓碑
  • 当物理放置不安全时使用虚拟坟墓
  • 使用扩展搜索半径重试符合条件的虚拟坟墓
  • 支持岩浆和虚空恢复,并提供临时应急平台
  • 包含带有经验和等级信息的坟墓物品栏
  • 恢复单个物品或一次性恢复所有可能的内容
  • 将溢出物品安全地保留在坟墓内
  • 提供自动管理的坟墓指南针
  • 支持每个坟墓的共享和交互式访问请求
  • 包含英语和德语玩家语言
  • 提供管理员检查、恢复、迁移、修复和移除功能
  • 保护坟墓免受玩家、爆炸、活塞、火焰和替换的影响

该模组优先考虑保护。它避免删除非空坟墓,并尽可能避免替换无关的固体方块。


主要功能

安全的物品和经验存储

玩家死亡后,模组可以存储:

  • 完整的 36 格玩家物品栏
  • 已装备的盔甲
  • 副手物品
  • 精确的堆叠数量
  • 物品耐久度
  • 物品组件和元数据
  • 精确的经验值

完整的坟墓记录会在从玩家身上移除所捕获的内容之前保存。如果坟墓处理遇到问题,模组会尝试保留原始物品栏,而不是静默删除它。

物理坟墓和虚拟坟墓

物理坟墓

物理坟墓由世界中的一个受保护的多部件墓碑表示。它使用语言中立的标签显示所有者的坟墓编号和玩家名称。

虚拟坟墓

如果没有可用的安全物理位置,坟墓将以虚拟方式存储。

虚拟坟墓:

  • 保留所有存储的物品和经验
  • 出现在玩家的坟墓列表中
  • 保留原始死亡位置
  • 可由管理员检查
  • 可重试物理放置
  • 不会仅因放置失败而被删除

后续放置尝试使用配置的扩展搜索半径。

安全的坟墓放置

有效的坟墓位置必须:

  • 位于世界边界内
  • 位于世界的建筑高度内
  • 有足够的自由空间
  • 有安全的支撑地形
  • 避开危险的岩浆和火焰位置
  • 避免覆盖无关的固体方块
  • 避免已被另一个坟墓保留的位置

初始搜索半径和扩展搜索半径可分别配置。

岩浆和虚空恢复

模组可以检测危险的岩浆或类似虚空的死亡,并且可以:

  • 搜索附近更安全的位置
  • 创建临时应急平台
  • 在该平台上方放置坟墓
  • 持续跟踪所有生成的平台方块
  • 在坟墓存在期间保护该平台
  • 在坟墓被移除后安全地移除该平台

临时平台的清理可以在服务器重启后继续进行。

交互式坟墓物品栏

右键点击物理墓碑以打开其物品栏。

坟墓菜单包含:

  • 存储的物品栏物品
  • 存储的盔甲
  • 存储的副手物品
  • 存储的总经验值
  • 等效的 Minecraft 等级和进度
  • 全部恢复按钮

物品无法被插入坟墓中。

如果玩家的物品栏部分已满:

  • 可以放入的物品会被恢复
  • 经验仍然可以被恢复
  • 剩余物品安全地留在坟墓内
  • 玩家会被告知剩余多少物品

经验显示

经验显示会展示:

  • 存储的总经验值
  • 等效的 Minecraft 等级
  • 该等级的百分比进度
  • 距离下一级的经验进度

示例:

存储的经验
425 XP
相当于等级 18 + 37%
距离下一级还需 18 / 49 XP

经验图标仅供参考,无法被移除。

快速恢复

潜行并右键点击墓碑以立即恢复所有可能的内容。

恢复系统:

  • 优先使用原有的首选槽位
  • 安全地恢复盔甲和副手物品
  • 合并兼容的堆叠
  • 在需要时使用其他空闲物品栏槽位
  • 从不覆盖无关物品
  • 将任何放不下的物品留在坟墓内

坟墓指南针

使用:

/grave compass <number>

坟墓指南针:

  • 指向物理坟墓
  • 显示坟墓编号和所有者
  • 显示目标维度和坐标
  • 使用玩家选择的语言
  • 自动更新
  • 在坟墓不再存在后消失
  • 防止同一坟墓出现重复指南针

指南针仅在坟墓具有物理位置时可用。

导航

导航信息可以包括:

  • 坟墓编号
  • 坟墓状态
  • 维度
  • 坐标
  • 水平和完整距离
  • 基本方向
  • 高度差
  • 可点击的坐标复制

如果坟墓在另一个维度,玩家会被告知在进入该维度后可以计算距离和方向。


玩家命令

显示帮助:

/grave

列出你的坟墓:

/grave list

显示详细的坟墓信息:

/grave info <number>

定位坟墓:

/grave locate <number>

获取或更新坟墓指南针:

/grave compass <number>

更改语言:

/grave language english
/grave language deutsch

显示待处理的访问请求:

/grave requests

移除信任访问:

/grave untrust <grave number> <online player or UUID>

访问控制

坟墓默认是私有的。

可以通过以下方式授予访问权限:

  • 坟墓所有权
  • 受信任玩家列表
  • 交互式访问请求
  • 可选的公开访问
  • 管理员检查权限

当其他玩家与私有坟墓交互时,他们可以向所有者请求访问权限。所有者会收到可点击的操作来允许或拒绝请求。

请求会自动过期,无法为同一玩家和坟墓重复发送,要求所有者在线上,并在坟墓不再存在时被移除。


坟墓保护

非空坟墓可以受到保护,免受以下影响:

  • 玩家攻击和破坏方块
  • 爆炸
  • 活塞
  • 火焰
  • 岩浆和流体
  • 方块替换
  • 凋灵相关的破坏
  • 末影人的交互
  • 兼容的外部方块更改系统

模组还会监控物理坟墓,并可以恢复缺失的载体方块或显示实体。如果无关的固体方块占据了记录的位置,模组会避免覆盖它,并保留坟墓数据以供管理员恢复。


自动恢复和修复

模组可以:

  • 恢复缺失的坟墓载体方块
  • 重新创建缺失的显示实体
  • 移除重复的显示实体
  • 迁移旧版坟墓方块
  • 检测被阻挡的坟墓位置
  • 标记需要管理员恢复的坟墓
  • 重试符合条件的虚拟坟墓
  • 在后续尝试中使用扩展搜索半径

自动重试处理被有意限制以控制服务器负载。


管理员工具

管理员可以:

  • 列出所有存储的坟墓
  • 检查完整的坟墓详情
  • 以只读模式打开坟墓
  • 将内容恢复到在线玩家
  • 迁移坟墓
  • 修复坟墓表示
  • 经确认后永久移除坟墓
  • 查看有效权限

命令:

/graveadmin list
/graveadmin info <grave UUID>
/graveadmin restore <grave UUID> <online player>
/graveadmin relocate <grave UUID>
/graveadmin remove <grave UUID>
/graveadmin repair
/graveadmin repair <grave UUID>
/graveadmin permissions

当坟墓仍包含物品或经验值时,管理员移除会发出警告。如果坟墓在确认准备后发生变化,移除会被取消,必须重新准备。


权限

可用的权限节点:

kronentrollsgraves.owner
kronentrollsgraves.admin
kronentrollsgraves.inspect
kronentrollsgraves.restore
kronentrollsgraves.remove
kronentrollsgraves.relocate
kronentrollsgraves.access/bypass

管理员只读访问不允许管理员将其他玩家的坟墓恢复到自己的物品栏中。敏感的管理操作可以写入专用的审计日志。


语言

包含的语言:

  • 英语
  • 德语

每个玩家可以独立选择语言:

/grave language english
/grave language deutsch

翻译的元素包括菜单、工具提示、经验信息、恢复结果、指南针名称和描述、导航、访问请求、保护消息和管理员确认。


要求

  • Minecraft Java Edition 26.2
  • Fabric Loader 0.19.5 或更新版本
  • Fabric API 0.158.0+26.2 或更新版本
  • Java 25 或更新版本

安装

专用服务器

  1. 为 Minecraft 26.2 安装 Fabric Loader。
  2. 安装匹配的 Fabric API 版本。
  3. 将 Kronentroll's Graves 的 JAR 放入服务器的 mods 目录。
  4. 启动服务器一次。
  5. 停止服务器并查看生成的配置。
  6. 再次启动服务器。

单人游戏

  1. 为 Minecraft 26.2 安装 Fabric Loader。
  2. 安装匹配的 Fabric API 版本。
  3. 将模组 JAR 放入 Minecraft 的 mods 目录。
  4. 启动 Fabric 配置文件。
  5. 在测试前备份重要的现有世界。

更新

  1. 完全停止服务器。
  2. 备份世界和配置目录。
  3. 替换旧的模组 JAR。
  4. 启动服务器。
  5. 查看日志中的迁移或修复消息。

完整配置

配置生成于:

config/kronentrollsgraves.json

完整的默认配置:

{
  "configVersion": "2",
  "appearance": {
    "graveBlock": "minecraft:polished_blackstone_wall",
    "dropPlayerHead": true,
    "headCanDespawn": true,
    "removeGraveWhenEmpty": true
  },
  "storage": {
    "storeItems": true,
    "storeExactExperience": true,
    "keepOverflowInsideGrave": true,
    "useEmergencyVirtualGraves": true,
    "suppressNormalDropsAfterSaving": true,
    "saveBeforeRemovingPlayerItems": true,
    "maximumGravesPerPlayer": 0
  },
  "placement": {
    "initialHorizontalSearchRadius": 16,
    "initialVerticalSearchRadius": 16,
    "expandedHorizontalSearchRadius": 128,
    "expandedVerticalSearchRadius": 128,
    "maximumPlacementAttemptsPerTick": 512,
    "retryIntervalTicks": 20,
    "searchUntilSafePositionFound": true,
    "allowCrossChunkSearch": true,
    "loadRequiredChunks": true,
    "rescueFromLava": true,
    "rescueFromFire": true,
    "rescueFromVoid": true,
    "createVoidPlatform": true,
    "voidPlatformBlock": "minecraft:obsidian",
    "voidPlatformSize": 3
  },
  "protection": {
    "enabled": true,
    "protectWhileNotEmpty": true,
    "protectFromPlayers": true,
    "protectFromExplosions": true,
    "protectFromFire": true,
    "protectFromLava": true,
    "protectFromPistons": true,
    "protectFromWither": true,
    "protectFromEndermen": true,
    "protectFromFluids": true,
    "protectFromOtherMods": true,
    "preventBlockReplacement": true
  },
  "access": {
    "ownerCanOpen": true,
    "ownerCanBreak": true,
    "trustedPlayersCanOpen": true,
    "trustedPlayersCanBreak": true,
    "operatorsBypassProtection": false,
    "useLuckPerms": true,
    "administratorPermission": "kronentrollsgraves.admin",
    "allowIndividualGraveSharing": true,
    "allowPermanentSharing": false
  },
  "expiration": {
    "enabled": false,
    "expirationSeconds": 0,
    "publicAccessEnabled": false,
    "publicAccessAfterSeconds": 0
  },
  "messages": {
    "sendDeathCoordinates": true,
    "useClickableMessages": true,
    "showDimension": true,
    "showGraveNumber": true,
    "showRecoveryWarnings": true
  },
  "debug": {
    "enabled": false,
    "logPlacementSearch": false,
    "logProtectionDecisions": false,
    "logStorageOperations": false
  }
}

配置参考

外观

  • graveBlock:坟墓载体方块标识符。默认:minecraft:polished_blackstone_wall。
  • dropPlayerHead:在成功放置的坟墓附近掉落玩家的头颅。
  • headCanDespawn:允许掉落的头颅物品正常消失。
  • removeGraveWhenEmpty:控制所有可恢复内容被移除后的预期清理。

存储

  • storeItems:存储符合条件的物品栏内容。
  • storeExactExperience:存储精确的经验值,而不是近似等级。
  • keepOverflowInsideGrave:将放不下的物品安全地保留在坟墓内。
  • useEmergencyVirtualGraves:如果物理放置失败,则以虚拟方式保留内容。
  • suppressNormalDropsAfterSaving:防止已成功存储的物品同时正常掉落。
  • saveBeforeRemovingPlayerItems:在移除所捕获的内容之前保存坟墓。
  • maximumGravesPerPlayer:同时存在的物理非空坟墓的最大数量。0 表示无限制。额外的坟墓将保持虚拟状态,而不是被删除。

放置

  • initialHorizontalSearchRadius:首次放置尝试的水平半径。
  • initialVerticalSearchRadius:首次尝试的垂直半径。
  • expandedHorizontalSearchRadius:后续尝试的水平半径。
  • expandedVerticalSearchRadius:后续尝试的垂直半径。
  • maximumPlacementAttemptsPerTick:每次放置尝试的最大候选检查数。
  • retryIntervalTicks:重试检查之间的延迟。通常 20 刻约为 1 秒。
  • searchUntilSafePositionFound:为符合条件的虚拟坟墓启用后续尝试。
  • allowCrossChunkSearch:配置跨区块放置搜索。
  • loadRequiredChunks:配置所需区块的预期处理方式。
  • rescueFromLava:为岩浆死亡启用特殊处理。
  • rescueFromFire:启用配置的火焰救援行为。
  • rescueFromVoid:为类似虚空的死亡启用特殊处理。
  • createVoidPlatform:允许临时应急平台。
  • voidPlatformBlock:配置的应急平台方块。
  • voidPlatformSize:奇数的平台宽度,从 1 到 15;无效值会被修正。

针对较大服务器的建议生产设置:

"maximumGravesPerPlayer": 5
"maximumPlacementAttemptsPerTick": 256
"retryIntervalTicks": 100

保护

  • enabled:总保护开关。
  • protectWhileNotEmpty:保持可恢复坟墓受到保护。
  • protectFromPlayers:防止普通的玩家破坏。
  • protectFromExplosions:保护记录的坟墓和平台方块免受爆炸影响。
  • protectFromFire:移除附近受支持的火焰危险。
  • protectFromLava:启用岩浆相关的保护行为。
  • protectFromPistons:防止活塞移动或破坏。
  • protectFromWither:预期的凋灵保护开关。
  • protectFromEndermen:预期的末影人保护开关。
  • protectFromFluids:预期的流体变化保护开关。
  • protectFromOtherMods:针对兼容外部系统的预期集成开关。
  • preventBlockReplacement:保护记录的位置免受受支持的替换行为影响。

访问

  • ownerCanOpen:允许所有者打开他们的坟墓。
  • ownerCanBreak:配置预期的所有者破坏行为。
  • trustedPlayersCanOpen:允许受信任玩家打开共享坟墓。
  • trustedPlayersCanBreak:配置预期的受信任玩家破坏行为。
  • operatorsBypassProtection:启用配置的管理员绕过行为。
  • useLuckPerms:启用权限提供者集成配置。
  • administratorPermission:基础管理权限标识符。
  • allowIndividualGraveSharing:启用每个坟墓的共享。
  • allowPermanentSharing:控制永久共享行为。

过期

  • enabled:启用过期处理。
  • expirationSeconds:进入过期状态前的时间。0 表示不配置过期。
  • publicAccessEnabled:允许延迟公开访问。
  • publicAccessAfterSeconds:公开访问开始前的延迟。

有用的值:

3600 = 1 Hour
86400 = 1 Day
604800 = 7 Days
2592000 = 30 Days

为安全起见,达到过期时间不会静默删除存储的物品。

消息

  • sendDeathCoordinates:在支持的情况下启用坟墓坐标信息。
  • useClickableMessages:启用可点击的命令和坐标复制。
  • showDimension:在支持的情况下包含维度信息。
  • showGraveNumber:包含所有者特定的坟墓编号。
  • showRecoveryWarnings:显示安全和恢复警告。

调试

  • enabled:总调试设置。
  • logPlacementSearch:在可用的情况下添加放置搜索日志。
  • logProtectionDecisions:记录选定的保护决策。
  • logStorageOperations:记录选定的存储操作。

调试日志通常应在生产服务器上保持禁用。


保存数据和安全

持久化坟墓数据包括:

  • 坟墓 ID
  • 所有者 UUID 和名称
  • 所有者特定的坟墓编号
  • 原始死亡位置
  • 物理坟墓位置
  • 坟墓状态
  • 主物品栏、盔甲和副手物品
  • 精确经验值
  • 受信任玩家
  • 公开访问状态
  • 放置尝试次数
  • 时间信息

应急平台也会被持久跟踪。

在更新、移除模组、更改 Minecraft 版本或手动编辑保存数据之前,请始终创建世界备份。

在永久移除模组之前:

  1. 恢复每个坟墓。
  2. 检查玩家和管理员坟墓列表。
  3. 确认没有可恢复的坟墓残留。
  4. 停止服务器。
  5. 创建最终备份。
  6. 移除模组。

审计日志

敏感的管理操作可能会被写入:

logs/kronentrollsgraves-audit.log

条目可以包括时间戳、操作、管理员、坟墓 ID、所有者、坟墓编号、状态、结果和其他详细信息。


已知行为

  • 物理放置需要安全可用的位置。
  • 如果不存在安全位置,内容将保持虚拟存储。
  • 后续尝试使用配置的扩展搜索区域。
  • 自动重试处理被有意限制以控制服务器负载。
  • 坟墓指南针需要物理坟墓位置。
  • 当玩家仍在附近时,临时平台清理可能会延迟。
  • 管理员移除非空坟墓需要确认。
  • 模组避免替换无关的固体方块。
  • 保留物品栏会阻止正常的坟墓创建,因为物品栏和经验已经留在玩家身上。

故障排除

坟墓被虚拟存储了

没有可用的安全物理位置。检查 /grave list,返回相关区域,查看放置设置,或让管理员检查或迁移坟墓。

坟墓指南针消失了

相关坟墓不再存在、不再具有物理位置,或者该指南针是无效的重复项。

物品仍留在坟墓内

玩家的物品栏缺少兼容的空间。腾出槽位并再次恢复。

坟墓无法自动修复

维度或区块可能不可用,或者无关的固体方块可能占据了记录的位置。使用管理员检查、修复或迁移。

启用保留物品栏时没有创建坟墓

这是预期行为。玩家的物品和经验在死亡后已经保留。


报告问题

请包含:

  1. Minecraft 版本
  2. Fabric Loader 版本
  3. Fabric API 版本
  4. Kronentroll's Graves 版本
  5. Java 版本
  6. 单人游戏或专用服务器
  7. 相关配置值
  8. 确切的复现步骤
  9. 相关的服务器日志摘录
  10. 在没有无关模组的情况下问题是否仍然存在

在分享日志之前,请移除 IP 地址或身份验证数据等私密信息。


兼容性

该模组专为 Fabric、多人服务器、单人世界、原版风格物品栏和权限控制环境而设计。

与替换死亡处理、物品栏存储、方块保护或经验行为的模组的兼容性可能会有所不同。不建议同时使用多个坟墓模组。


许可证

保留所有权利

你可以下载并使用此模组用于个人游戏以及私人运营的 Minecraft 服务器。

未经版权持有人事先书面许可,你不得重新分发、重新上传、出售、修改并重新发布,或声称此模组或其任何部分为你自己的。

除非另有明确说明,否则包含在公开发布的整合包中需要事先书面许可。

本软件按原样提供,不附带任何保证。版权持有人不对因使用本软件而导致的数据丢失、世界损坏、服务器停机或其他损害负责。


AI

AI 在我构建这个项目时帮助了我。