diff --git a/common/src/main/java/muramasa/antimatter/capability/item/CombinedInvWrapper.java b/common/src/main/java/muramasa/antimatter/capability/item/CombinedInvWrapper.java index b0e7145dc..ae3fb194c 100644 --- a/common/src/main/java/muramasa/antimatter/capability/item/CombinedInvWrapper.java +++ b/common/src/main/java/muramasa/antimatter/capability/item/CombinedInvWrapper.java @@ -1,5 +1,8 @@ package muramasa.antimatter.capability.item; +import muramasa.antimatter.blockentity.multi.BlockEntityHatch; +import muramasa.antimatter.gui.SlotType; +import muramasa.antimatter.util.Utils; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.ItemStack; import org.jetbrains.annotations.NotNull; @@ -59,11 +62,20 @@ protected int getSlotFromIndex(int slot, int index) @Override @NotNull - public ItemStack insertItem(int slot, @NotNull ItemStack stack, boolean simulate) - { + public ItemStack insertItem(int slot, @NotNull ItemStack stack, boolean simulate) { + int index = getIndexForSlot(slot); ExtendedItemContainer handler = getHandlerFromIndex(index); slot = getSlotFromIndex(slot, index); + if (handler instanceof TrackedItemHandler trackedItemHandler){ + if (trackedItemHandler.getType() == SlotType.IT_IN && !(trackedItemHandler.getTile() instanceof BlockEntityHatch)){ + for (int i = 0; i < trackedItemHandler.getSize(); i++){ + if (i == slot) continue; + if (trackedItemHandler.getItem(i).isEmpty()) continue; + if (Utils.equals(trackedItemHandler.getItem(i), stack)) return stack; + } + } + } return handler.insertItem(slot, stack, simulate); } diff --git a/common/src/main/java/muramasa/antimatter/capability/item/TrackedItemHandler.java b/common/src/main/java/muramasa/antimatter/capability/item/TrackedItemHandler.java index 1288cfbc6..cb7e61d75 100644 --- a/common/src/main/java/muramasa/antimatter/capability/item/TrackedItemHandler.java +++ b/common/src/main/java/muramasa/antimatter/capability/item/TrackedItemHandler.java @@ -62,13 +62,6 @@ public void onContentsChanged(int slot) { @NotNull @Override public ItemStack insertItem(int slot, @NotNull ItemStack stack, boolean simulate) { - if (this.type == SlotType.IT_IN && !(tile instanceof BlockEntityHatch)){ - for (int i = 0; i < size; i++){ - if (i == slot) continue; - if (this.getItem(i).isEmpty()) continue; - if (Utils.equals(this.getItem(i), stack)) return stack; - } - } if (!input) return stack; boolean validate = !(tile instanceof IFilterableHandler filterableHandler) || filterableHandler.test(type, slot, stack);