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.java
  • src/main/java/pl/asie/foamfix/forkage/coremod/injects/EntityLivingBaseItemNBTRenderFixInject.java