diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/item/ItemStackMixin.java b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/item/ItemStackMixin.java index 82594c4b..b32037a3 100644 --- a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/item/ItemStackMixin.java +++ b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/item/ItemStackMixin.java @@ -36,7 +36,7 @@ public abstract class ItemStackMixin extends CapabilityProvider imple @Shadow @Deprecated private Item item; @Shadow private int count; @Shadow(remap = false) private CompoundNBT capNBT; - @Mutable @Shadow @Final private IRegistryDelegate delegate; + @Mutable @Shadow(remap = false) @Final private IRegistryDelegate delegate; // @formatter:on protected ItemStackMixin(Class baseClass) { diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mod/util/remapper/ArclightRedirectAdapter.java b/arclight-common/src/main/java/io/izzel/arclight/common/mod/util/remapper/ArclightRedirectAdapter.java index 03971387..06be1450 100644 --- a/arclight-common/src/main/java/io/izzel/arclight/common/mod/util/remapper/ArclightRedirectAdapter.java +++ b/arclight-common/src/main/java/io/izzel/arclight/common/mod/util/remapper/ArclightRedirectAdapter.java @@ -42,6 +42,7 @@ import java.util.Arrays; import java.util.Collection; import java.util.ListIterator; import java.util.Map; +import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; public class ArclightRedirectAdapter implements PluginTransformer { @@ -162,6 +163,12 @@ public class ArclightRedirectAdapter implements PluginTransformer { for (AbstractInsnNode insnNode : methodNode.instructions) { if (insnNode instanceof MethodInsnNode) { MethodInsnNode from = (MethodInsnNode) insnNode; + if (from.getOpcode() == Opcodes.INVOKESPECIAL + && Objects.equals(from.owner, classNode.superName) + && Objects.equals(from.name, methodNode.name) + && Objects.equals(from.desc, methodNode.desc)) { + continue; + } process(from, methodNode.instructions, remapper, classNode); } else if (insnNode.getOpcode() == Opcodes.INVOKEDYNAMIC) { InvokeDynamicInsnNode invokeDynamic = (InvokeDynamicInsnNode) insnNode;