From dce4f6eada6558b7944735617a2f178b06c01be2 Mon Sep 17 00:00:00 2001 From: Connor Colenso Date: Sat, 21 Oct 2023 21:25:10 +0100 Subject: [PATCH] Improvements --- .../mymodid/{ => API}/ItemStackKey.java | 8 +++---- .../mymodid/{ => API}/ReplacementManager.java | 2 +- src/main/java/com/myname/mymodid/MyMod.java | 1 + .../mymodid/mixins/early/MixinItemStack.java | 23 +++++++++++++------ 4 files changed, 21 insertions(+), 13 deletions(-) rename src/main/java/com/myname/mymodid/{ => API}/ItemStackKey.java (78%) rename src/main/java/com/myname/mymodid/{ => API}/ReplacementManager.java (95%) diff --git a/src/main/java/com/myname/mymodid/ItemStackKey.java b/src/main/java/com/myname/mymodid/API/ItemStackKey.java similarity index 78% rename from src/main/java/com/myname/mymodid/ItemStackKey.java rename to src/main/java/com/myname/mymodid/API/ItemStackKey.java index cd82ce6..91fc66e 100644 --- a/src/main/java/com/myname/mymodid/ItemStackKey.java +++ b/src/main/java/com/myname/mymodid/API/ItemStackKey.java @@ -1,10 +1,8 @@ -package com.myname.mymodid; +package com.myname.mymodid.API; -import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.RegistryDelegate; import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; import java.util.Objects; @@ -33,8 +31,8 @@ public class ItemStackKey { return meta; } - public RegistryDelegate getItem() { - return item.delegate; + public Item getItem() { + return item; } } diff --git a/src/main/java/com/myname/mymodid/ReplacementManager.java b/src/main/java/com/myname/mymodid/API/ReplacementManager.java similarity index 95% rename from src/main/java/com/myname/mymodid/ReplacementManager.java rename to src/main/java/com/myname/mymodid/API/ReplacementManager.java index d8ed2e1..f10cb5c 100644 --- a/src/main/java/com/myname/mymodid/ReplacementManager.java +++ b/src/main/java/com/myname/mymodid/API/ReplacementManager.java @@ -1,4 +1,4 @@ -package com.myname.mymodid; +package com.myname.mymodid.API; import net.minecraft.item.Item; diff --git a/src/main/java/com/myname/mymodid/MyMod.java b/src/main/java/com/myname/mymodid/MyMod.java index 73f84bc..faa0499 100644 --- a/src/main/java/com/myname/mymodid/MyMod.java +++ b/src/main/java/com/myname/mymodid/MyMod.java @@ -1,5 +1,6 @@ package com.myname.mymodid; +import com.myname.mymodid.API.ReplacementManager; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; diff --git a/src/main/java/com/myname/mymodid/mixins/early/MixinItemStack.java b/src/main/java/com/myname/mymodid/mixins/early/MixinItemStack.java index 34a0208..8fad805 100644 --- a/src/main/java/com/myname/mymodid/mixins/early/MixinItemStack.java +++ b/src/main/java/com/myname/mymodid/mixins/early/MixinItemStack.java @@ -1,11 +1,11 @@ package com.myname.mymodid.mixins.early; -import com.myname.mymodid.ItemStackKey; -import com.myname.mymodid.ReplacementManager; -import net.minecraft.init.Items; +import com.myname.mymodid.API.ItemStackKey; +import com.myname.mymodid.API.ReplacementManager; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; @@ -15,18 +15,27 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(ItemStack.class) public abstract class MixinItemStack { - @Shadow - private cpw.mods.fml.common.registry.RegistryDelegate delegate; @Shadow private int itemDamage; // Metadata @Inject(method = "(Lnet/minecraft/item/Item;II)V", at = @At("RETURN")) - private void onConstructorHead(Item item, int size, int metadata, CallbackInfo ci) { + private void onConstructorReturn(Item item, int size, int metadata, CallbackInfo ci) { ItemStackKey replacement = ReplacementManager.getReplacement(item, metadata); // Edit private variables here. itemDamage = replacement.getDamage(); - delegate = replacement.getItem(); + field_151002_e = replacement.getItem(); + } + + + @Shadow + private Item field_151002_e; + @Inject(method = "readFromNBT(Lnet/minecraft/nbt/NBTTagCompound;)V", at = @At("RETURN")) + private void onReadFromNBTReturn(NBTTagCompound p_77963_1_, CallbackInfo ci) { + ItemStackKey replacement = ReplacementManager.getReplacement(field_151002_e, itemDamage); + + field_151002_e = replacement.getItem(); + itemDamage = replacement.getDamage(); } }