问题类型
世界生成错误(错误的地形 / 结构 / 生物群系)—— 本帖为跟踪 issue(问题来自其他渠道反馈 + 维护侧日志分析)
问题描述
安装 CoreSwap 后(Fabric 生产环境),CppBridge.feedBeardifier 对每个含结构的 chunk 反射失败,日志高频刷 java.lang.NoSuchFieldException: pieceIterator(配合 Chunky 预生成时 4032 次)。不只刷屏:结构地形塑形数据因此从未送达 C++ 侧,生产环境下结构底部 BEARD 塑形整体静默缺失。
复现步骤
- Fabric +
coreswap-1.20.1-1.0.24(生产映射环境)
- 进入/预生成含结构的区块
- 观察
latest.log:[CppBridge] feedBeardifier failed chunk(x,y): java.lang.NoSuchFieldException: pieceIterator
- 用 Chunky 大规模预生成可放大刷屏(详见完整日志,报告中出现 4032 次)
世界种子(Seed)
-5482617955539353316(报告者日志;问题与种子无关,生产环境必现)
坐标 / 维度
任意含结构的区块,主世界
预期行为
Beardifier 的结构 piece 信息正常喂给 C++ worldgen,结构底部地形塑形与原版一致;无失败日志刷屏。
实际行为
每个含结构 chunk 抛 NoSuchFieldException: pieceIterator(catch 降级不阻断),C++ setBeardifier 永远收不到数据。
CoreSwap 版本
coreswap-1.20.1-1.0.24
加载方式
Fabric(原生安装)
加载器版本
Fabric Loader 0.19.3 + fabric-api 0.92.11+1.20.1(Chunky 1.3.146 为放大器,非成因)
已安装的其他 mod
chunky 1.3.146(仅放大出现频率;裸 CoreSwap 正常游玩同样触发)
错误日志
[CppBridge] feedBeardifier failed chunk(1,1): java.lang.NoSuchFieldException: pieceIterator
(重复 4032 次,完整日志:https://mclo.gs/AzKJLVC)
影响面
- 影响:所有 Fabric 生产环境玩家(结构底部地形塑形静默缺失 + 日志刷屏)
- 严重度:高(世界生成正确性)
- 频率:必现(每个含结构 chunk)
根因分析(维护侧)
CppBridge.java:157-158 用裸字符串 getDeclaredField("pieceIterator"/"junctionIterator") 反射;Fabric 构建期不重映射反射字面量,生产环境(intermediary)实际字段名为 field_28744/field_28745,必抛
CppBridge.java:196-198 catch 无条件降级 + 无节流
- 同函数
:164-185 的 getMethod("box"/"getMinX"/...) 同样未映射,只修字段会在含 piece 的 chunk 上换成 NoSuchMethodException,须连带修
修复方向(维护侧)
双名解析(Fabric MappingResolver,fallback Yarn 名)+ 解析结果 static 缓存 + 失败日志节流;顺带排查同类裸反射(如 NoiseChunkGeneratorMixin 的 biomeSource)。
检查清单
— 本帖由 AI triage assistant 协助整理,人工维护者会最终确认。
问题类型
世界生成错误(错误的地形 / 结构 / 生物群系)—— 本帖为跟踪 issue(问题来自其他渠道反馈 + 维护侧日志分析)
问题描述
安装 CoreSwap 后(Fabric 生产环境),
CppBridge.feedBeardifier对每个含结构的 chunk 反射失败,日志高频刷java.lang.NoSuchFieldException: pieceIterator(配合 Chunky 预生成时 4032 次)。不只刷屏:结构地形塑形数据因此从未送达 C++ 侧,生产环境下结构底部 BEARD 塑形整体静默缺失。复现步骤
coreswap-1.20.1-1.0.24(生产映射环境)latest.log:[CppBridge] feedBeardifier failed chunk(x,y): java.lang.NoSuchFieldException: pieceIterator世界种子(Seed)
-5482617955539353316(报告者日志;问题与种子无关,生产环境必现)
坐标 / 维度
任意含结构的区块,主世界
预期行为
Beardifier 的结构 piece 信息正常喂给 C++ worldgen,结构底部地形塑形与原版一致;无失败日志刷屏。
实际行为
每个含结构 chunk 抛
NoSuchFieldException: pieceIterator(catch 降级不阻断),C++setBeardifier永远收不到数据。CoreSwap 版本
coreswap-1.20.1-1.0.24
加载方式
Fabric(原生安装)
加载器版本
Fabric Loader 0.19.3 + fabric-api 0.92.11+1.20.1(Chunky 1.3.146 为放大器,非成因)
已安装的其他 mod
chunky 1.3.146(仅放大出现频率;裸 CoreSwap 正常游玩同样触发)
错误日志
影响面
根因分析(维护侧)
CppBridge.java:157-158用裸字符串getDeclaredField("pieceIterator"/"junctionIterator")反射;Fabric 构建期不重映射反射字面量,生产环境(intermediary)实际字段名为field_28744/field_28745,必抛CppBridge.java:196-198catch 无条件降级 + 无节流:164-185的getMethod("box"/"getMinX"/...)同样未映射,只修字段会在含 piece 的 chunk 上换成 NoSuchMethodException,须连带修修复方向(维护侧)
双名解析(Fabric MappingResolver,fallback Yarn 名)+ 解析结果 static 缓存 + 失败日志节流;顺带排查同类裸反射(如
NoiseChunkGeneratorMixin的biomeSource)。检查清单
— 本帖由 AI triage assistant 协助整理,人工维护者会最终确认。