
为什么它不生成
站在本该有建筑的位置,被告知为什么没有——以及哪个模组从它的标签中删除了你的生物群系。
为什么它不生成
站在一个本应有结构生成的地方,然后问它为什么没有。
/whynot structure minecraft:pillager_outpost
--- 为什么没有 minecraft:pillager_outpost ---
你正站在:biomesoplenty:prairie
该生物群系不在该结构的生物群系列表中。它无法在此生成。
该列表来源于标签:#minecraft:has_structure/pillager_outpost
找到原因了:'mod/t_and_t' 在该标签上声明了 "replace": true,
这删除了其下方所有数据包添加的每一个条目——包括你添加的。
游戏不会记录这一点。不会有任何崩溃;条目就这样消失了。
其他模组在这里也丢失了条目(共 14 个),同样没有被告知:
biomesoplenty:lush_desert
biomesoplenty:prairie
#terralith:reference/forest
... 以及另外 11 个
它还删除了原版自有的 6 个条目。
这部分可能是故意的——重新定义原版列表正是
"replace" 的用途,该模组很可能替换成了自己的版本。这不是 bug。
这是一个来自真实整合包的真实回答。同时安装 Towns & Towers、Biomes O' Plenty 和 Terralith——三者都是优秀的模组,各自单独使用时也都完全正常——但 BOP 的六个生物群系会悄然失去所有的掠夺者前哨站。日志中没有任何记录。不会崩溃。结构就是永远不会生成,而你没有任何线索可查。
为什么这需要一个模组
生物群系标签通常会被合并:每个模组都将自己的生物群系添加到堆中,没有人会丢失。但一个模组可以写入 "replace": true,然后标签加载器就会丢弃其下方所有模组贡献的内容。而且是静默的。丢失条目的模组不会在替换者的文件中被点名,也永远不会被告知。
当游戏完成加载时,这些条目已经消失了。没有任何东西可以检查——这就是为什么你自己无法找到原因。证据只存在于各个数据包的文件中,在它们被合并之前。这正是本模组所读取的内容。
它不会做什么
它不会因为一个模组重新定义了原版列表而指责其有缺陷。 这正是 replace 的用途,而这样做的模组通常会附带自己的替代品——Towns & Towers 用自己按生物群系划分的前哨站替代了它移除的原版前哨站。原版条目的丢失会被单独报告,并标记为可能是故意的。
当你的生物群系根本没有被添加到标签中时,它也不会指责任何人。 “没人添加它”和“有人删除了它”是截然不同的答案,混淆它们会让无辜的模组收到错误报告。如果你的生物群系从未被列入,它会如实说明,并指出问题的本质:缺少兼容性补丁。
这两条规则都是通过惨痛教训学到的。姊妹项目的早期版本曾将 Towns & Towers 报告为有缺陷,而实际上它并没有问题。
修复它发现的问题
- Tag Rescue 会将其他模组的条目放回去,同时保留替换者自身的编辑。
- 或者通过数据包自己将你的生物群系添加到标签中。
- 或者请求模组使用
"replace": false。
加载顺序无法修复此问题。你需要的是两个列表合并;重新排序只会选出不同的胜利者。
备注
- 服务端(命令在服务端运行)。在客户端也安全。
- 无依赖。无 Mixin。不改变任何行为——它只读取。
- MIT 许可。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。