From 02d6ac253e96821c527e7e8f831cd24de0f760da Mon Sep 17 00:00:00 2001 From: raoulvdberge Date: Sun, 26 Apr 2020 15:53:48 +0200 Subject: [PATCH] Fixed Exporter not exporting anything when using a Stack Upgrade and there isn't space for 64 items in the inventory. Fixes #2128 --- CHANGELOG.md | 1 + .../apiimpl/network/node/ExporterNetworkNode.java | 12 +++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c1dbb5c4..eab118d79 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ### 1.8.3 - Added a new experimental autocrafting engine that's enabled by default. This should improve autocrafting performance (Darkere) - Wireless Transmitters can now be placed on any block and in any direction (raoulvdberge) +- Fixed Exporter not exporting anything when using a Stack Upgrade and there isn't space for 64 items in the inventory (raoulvdberge) ### 1.8.2 - Add Refined Storage silicon to forge:silicon tag for mod compatibility (jeremiahwinsley) diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/ExporterNetworkNode.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/ExporterNetworkNode.java index d3b0b836e..7e69166d3 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/ExporterNetworkNode.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/ExporterNetworkNode.java @@ -85,10 +85,16 @@ public class ExporterNetworkNode extends NetworkNode implements IComparable, ITy if (upgrades.hasUpgrade(UpgradeItem.Type.CRAFTING)) { network.getCraftingManager().request(new SlottedCraftingRequest(this, filterSlot), slot, stackSize); } - } else if (ItemHandlerHelper.insertItem(handler, took, true).isEmpty()) { - took = network.extractItem(slot, Math.min(slot.getMaxStackSize(), stackSize), compare, Action.PERFORM); + } else { + ItemStack remainder = ItemHandlerHelper.insertItem(handler, took, true); - ItemHandlerHelper.insertItem(handler, took, false); + int correctedStackSize = took.getCount() - remainder.getCount(); + + if (correctedStackSize > 0) { + took = network.extractItem(slot, correctedStackSize, compare, Action.PERFORM); + + ItemHandlerHelper.insertItem(handler, took, false); + } } }