EntityHeldItemNBT Render Fix
基本信息
修复生物手持物品不反映其 NBT 状态(如附魔、耐久)。
来源:Forkage / immibis。配置开关 entityHeldItemNBTRenderFix(默认 true)。
目标
| 项 | 值 |
|---|---|
| 补丁名 | EntityHeldItemNBTRenderFix |
| 目标类 | net/minecraft/entity/EntityLivingBase |
| 方法名/描述符 | "" / ""(哨兵,见下) |
哨兵 + 覆写
super(name, targetClassName, "", "");
@Override
protected void patchClassNode(ClassNode classNode) { ... }
覆写 patchClassNode 后对全类方法自行筛选,绕开基类的 == null 判断。
与 SoundSystemUnpauseFix 同一手法。
配套 Inject 类
补丁体是 ClassSplicingUtil.spliceClasses(classNode, "pl.asie.foamfix.forkage.coremod.injects.EntityLivingBaseItemNBTRenderFixInject", ...),
注入代码位于:
src/main/java/pl/asie/foamfix/forkage/coremod/injects/EntityLivingBaseItemNBTRenderFixInject.java
注意包名是 ...coremod.injects(独立子包),与 patcher 所在的
...coremod.patchers 分开。
注入代码放在 pl.asie.foamfix 包下,由
FoamFix Core 的
@IFMLLoadingPlugin.TransformerExclusions({"pl.asie.foamfix"}) 排除,
避免被自己的补丁二次改写。
相关条目
源码
src/main/java/pl/asie/foamfix/forkage/coremod/patchers/EntityLivingBaseItemNBTRenderFixPatcher.javasrc/main/java/pl/asie/foamfix/forkage/coremod/injects/EntityLivingBaseItemNBTRenderFixInject.java