diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/FluidStorageDisk.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/FluidStorageDisk.java index c692e8d70..a3170a836 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/FluidStorageDisk.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/FluidStorageDisk.java @@ -95,13 +95,14 @@ public class FluidStorageDisk implements IStorageDisk { return StackUtils.copy(otherStack, size - remainingSpace); } else { + int maxConsumable = Math.min(size, Integer.MAX_VALUE - otherStack.getAmount()); if (action == Action.PERFORM) { - otherStack.grow(size); + otherStack.grow(maxConsumable); onChanged(); } - return FluidStack.EMPTY; + return StackUtils.copy(otherStack, size - maxConsumable); } } } diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/ItemStorageDisk.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/ItemStorageDisk.java index 27b30daa9..cea7e2326 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/ItemStorageDisk.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/storage/disk/ItemStorageDisk.java @@ -102,14 +102,15 @@ public class ItemStorageDisk implements IStorageDisk { return ItemHandlerHelper.copyStackWithSize(otherStack, size - remainingSpace); } else { + int maxConsumable = Math.min(size, Integer.MAX_VALUE - otherStack.getCount()); if (action == Action.PERFORM) { - otherStack.grow(size); - itemCount += size; + otherStack.grow(maxConsumable); + itemCount += maxConsumable; onChanged(); } - return ItemStack.EMPTY; + return ItemHandlerHelper.copyStackWithSize(otherStack, size - maxConsumable); } } }