diff --git a/src/main/java/net/minecraftforge/items/wrapper/InvWrapper.java b/src/main/java/net/minecraftforge/items/wrapper/InvWrapper.java index 88c60bbfbb..6a41634830 100644 --- a/src/main/java/net/minecraftforge/items/wrapper/InvWrapper.java +++ b/src/main/java/net/minecraftforge/items/wrapper/InvWrapper.java @@ -75,9 +75,6 @@ public class InvWrapper implements IItemHandlerModifiable if (stack.isEmpty()) return ItemStack.EMPTY; - if (!getInv().isItemValidForSlot(slot, stack)) - return stack; - ItemStack stackInSlot = getInv().getStackInSlot(slot); int m; @@ -86,6 +83,9 @@ public class InvWrapper implements IItemHandlerModifiable if (!ItemHandlerHelper.canItemStacksStack(stack, stackInSlot)) return stack; + if (!getInv().isItemValidForSlot(slot, stack)) + return stack; + m = Math.min(stack.getMaxStackSize(), getSlotLimit(slot)) - stackInSlot.getCount(); if (stack.getCount() <= m) @@ -121,6 +121,9 @@ public class InvWrapper implements IItemHandlerModifiable } else { + if (!getInv().isItemValidForSlot(slot, stack)) + return stack; + m = Math.min(stack.getMaxStackSize(), getSlotLimit(slot)); if (m < stack.getCount()) { diff --git a/src/main/java/net/minecraftforge/items/wrapper/SidedInvWrapper.java b/src/main/java/net/minecraftforge/items/wrapper/SidedInvWrapper.java index c71bedfcc9..8e5e32ff9a 100644 --- a/src/main/java/net/minecraftforge/items/wrapper/SidedInvWrapper.java +++ b/src/main/java/net/minecraftforge/items/wrapper/SidedInvWrapper.java @@ -93,9 +93,6 @@ public class SidedInvWrapper implements IItemHandlerModifiable if (slot1 == -1) return stack; - if (!inv.isItemValidForSlot(slot1, stack) || !inv.canInsertItem(slot1, stack, side)) - return stack; - ItemStack stackInSlot = inv.getStackInSlot(slot1); int m; @@ -104,6 +101,9 @@ public class SidedInvWrapper implements IItemHandlerModifiable if (!ItemHandlerHelper.canItemStacksStack(stack, stackInSlot)) return stack; + if (!inv.isItemValidForSlot(slot1, stack) || !inv.canInsertItem(slot1, stack, side)) + return stack; + m = Math.min(stack.getMaxStackSize(), getSlotLimit(slot)) - stackInSlot.getCount(); if (stack.getCount() <= m) @@ -137,6 +137,9 @@ public class SidedInvWrapper implements IItemHandlerModifiable } else { + if (!inv.isItemValidForSlot(slot1, stack) || !inv.canInsertItem(slot1, stack, side)) + return stack; + m = Math.min(stack.getMaxStackSize(), getSlotLimit(slot)); if (m < stack.getCount()) {