
结构资源管理器
追踪玩家发现的结构,你也可以查看自己、其他玩家及排行榜的追踪情况。
查看大图结构探索者
这个模组激励玩家去尝试发现世界中存在的所有结构!
我想制作一个服务器,鼓励玩家探索世界的各个角落,而且每隔几个月就会有新的结构被添加,但我找不到任何能追踪已发现结构的模组。很久以前我曾尝试为自己制作这个模组但失败了,但这次我再次尝试,并在两天内完成了它。
它的工作方式是默认每5秒自动检查一次移动中的玩家,看他们是否处于某个结构内,并将该结构添加到该玩家已发现结构的列表中。

⌨ 命令
主命令:/explorer - 别名:/discoveries
| 命令 | 描述 |
|---|---|
/explorer page? <n> |
你已发现的结构。页码可选 |
/explorer player <name> page? <n> |
查看其他玩家的发现。页码可选 |
/explorer structure <id> |
谁发现了某个特定结构 |
/explorer instances <id> page? <n> |
你对某个特定结构的记录实例。页码可选 |
/explorer here |
显示你当前所在结构的信息面板 |
/explorer leaderboard page? <n> |
按发现数量排名的顶级玩家。页码可选 |
/explorer playerinstances <player> <id> |
[OP] 查看任何玩家的实例 |
/explorer reload |
[OP] 重新加载配置和翻译 |
📝 配置文件 - structure_explorer.json
位置:config/structure_explorer/structure_explorer.json
| 键 | 默认值 | 描述 |
|---|---|---|
checkIntervalMs |
5000 |
模组检查玩家是否进入结构的频率(毫秒)。数值越低 = 响应越快,但服务器负载略高。 |
showNthDiscoverer |
true |
是否在聊天通知中显示发现者徽章,例如 [首位发现者!] 或 [第3位发现者]。 |
useMonthDayYear |
false |
时间戳格式。false = DD/MM/YYYY HH:MM:SS - true = MM/DD/YYYY HH:MM:SS |
trackInstances |
true |
是否记录每个已访问结构实例的坐标和时间戳。当为 false 时,仅追踪已发现的结构类型。 |
sounds.newDiscoverySound |
true |
发现新结构时播放音效。 |
sounds.newInstanceSound |
true |
发现新实例时播放音效。 |
🛠 模组制作指南
结构探索者可以通过两种方式获取结构名称 - 选择最适合你的方式。
选项 1 - 语言文件 (最简单)
如果你的模组已有语言文件,结构探索者会自动读取。只需使用以下键格式添加条目:
"structure.<namespace>.<path>": "显示名称"
以 assets/mymod/lang/en_us.json 为例:
{
"structure.mymod.cool_dungeon": "酷炫地牢"
}
无需额外文件 - 名称会自动获取(具体显示方式请参见下方场景)。
注意: 这仅适用于直接打包在模组 JAR 内的语言文件(
assets/<namespace>/lang/en_us.json)。结构探索者在服务器端运行,无法读取资源包语言文件 - 那些仅存在于客户端,服务器永远看不到。如果你的语言条目位于单独的资源包中而不是模组 JAR 中,请改用下面的选项 2。
选项 2 - translations.json (完全控制)
要完全控制前缀、后缀、颜色和精确名称,请在模组 JAR 内的 data/<your_modid>/structure_explorer/translations.json 打包一个文件,使用与服务器管理员配置相同的翻译文件格式。它会在 config/translations/ 文件之前加载,因此服务器管理员始终可以覆盖它。
两者如何交互
假设 Katter's Structures 在其语言文件中有 "structure.kattersstructures.sky_dungeo": "天空地牢"。最终显示名称的确定方式如下:
场景 1 - 完全没有语言条目和翻译条目
例如:
kattersstructures:ancient_ruins在任何地方都没有定义 结果:Ancient Ruins [Kattersstructures] 结构路径和命名空间都会被自动美化(下划线 → 空格,每个单词首字母大写)并组合 - 这是原始回退方案。
场景 2 - 存在语言名称,但任何地方(模组打包或服务器配置)都没有该命名空间的翻译条目
结果:天空地牢 [Kattersstructures] 命名空间被自动美化并以方括号附加,因为没有自定义设置。
场景 3 - 翻译条目覆盖了此特定结构的名称
{
"translations": {
"kattersstructures": {
"suffix": " [Katter's Structures]",
"suffix_color": "gray",
"structures": { "sky_dungeo": "大型天空堡垒" }
}
}
}
结果:大型天空堡垒 [Katter's Structures] 使用覆盖名称,应用样式,自动方括号消失。
场景 4 - 翻译条目为命名空间设置了样式但未覆盖此结构
{
"translations": {
"kattersstructures": {
"prefix": "Katter's: ",
"prefix_color": "red"
}
}
}
结果:Katter's: 天空地牢
sky_dungeo没有覆盖条目,因此使用语言名称作为基础 - 应用样式,无自动方括号。
如果有人想为其他模组制作非官方支持,数据包也可以 - 捆绑一个 data/<your_namespace>/structure_explorer/translations.json,就像上面的选项 2 一样。这些会在 config/translations/ 文件之前加载,因此服务器管理员始终可以覆盖它们。
🗣 翻译
原版结构名称默认会被翻译 - 例如 minecraft:fortress ➡ 下界要塞。要为任何命名空间自定义名称,请将 JSON 文件放置在:
config/structure_explorer/translations/ - 文件可以任意命名(例如 minecraft.json、custom.json),并会在内置和模组打包翻译之后加载,因此它们始终具有最高优先级。随时使用 /explorer reload 重新加载(需要 OP 权限)。
翻译文件格式
{
"replace": false,
"translations": {
"namespace": {
"prefix": "",
"prefix_color": "",
"suffix": "",
"suffix_color": "",
"name_color": "",
"structures": {
"structure_path": "Display Name"
}
}
}
}
以下是一个示例,使用 Minecraft 原版位置
| 键 | 默认值 | 描述 |
|---|---|---|
replace |
false |
false 与现有翻译合并(冲突时新文件优先,前缀/后缀/颜色仅在非空时覆盖)。true 丢弃该命名空间的所有内置/先前翻译 - 只有你在此定义的内容会存在。 |
prefix / suffix |
"" |
显示在结构名称之前/之后的文本,例如 "prefix": "Minecraft: " → Minecraft: Stronghold |
prefix_color / suffix_color / name_color |
(金色) | 分别应用于每个部分的颜色。参见 颜色。 |
structures |
(无) | 结构路径 → 显示名称的映射。路径是结构 ID 中冒号后面的部分 - 例如 minecraft:stronghold → 路径为 stronghold |
颜色
命名颜色(不区分大小写):black dark_blue dark_green dark_aqua dark_red dark_purple gold gray dark_gray blue green aqua red light_purple yellow white
十六进制颜色(CSS 风格,以 # 为前缀):"#FF5500" "#00AAFF" "#FFFFFF"
免责声明:本模组的各个部分使用了 AI 辅助。
如果没有修改和学习 TelepathicGrunt 制作的 WITS 模组,我无法开始制作这个模组。
显示 1-12 条,共 12 条
以上为资源接口提供的文件记录。安装时请在客户端确认文件、游戏版本及依赖。










还没有人评论,去客户端里说两句吧。
评论在新手盒子客户端中发表,这里同步展示。