diff --git a/src/main/java/appeng/core/sync/packets/PacketJEIRecipe.java b/src/main/java/appeng/core/sync/packets/PacketJEIRecipe.java index bdfab5900..d1948eddb 100644 --- a/src/main/java/appeng/core/sync/packets/PacketJEIRecipe.java +++ b/src/main/java/appeng/core/sync/packets/PacketJEIRecipe.java @@ -200,6 +200,9 @@ public class PacketJEIRecipe extends AppEngPacket { if (request.getItem().isDamageable() || Platform.isGTDamageableItem(request.getItem())) { Collection outList = inv.getInventory(AEApi.instance().storage().getStorageChannel(IItemStorageChannel.class)).getStorageList().findFuzzy(request, FuzzyMode.IGNORE_ALL); for (IAEItemStack is : outList) { + if (is.getStackSize() == 0) { + continue; + } if (Platform.isGTDamageableItem(request.getItem())) { if (!(is.getDefinition().getMetadata() == request.getDefinition().getMetadata())) { continue; diff --git a/src/main/java/appeng/parts/automation/PartExportBus.java b/src/main/java/appeng/parts/automation/PartExportBus.java index 0caa5b56b..106b98fea 100644 --- a/src/main/java/appeng/parts/automation/PartExportBus.java +++ b/src/main/java/appeng/parts/automation/PartExportBus.java @@ -132,23 +132,25 @@ public class PartExportBus extends PartSharedItemBus implements ICraftingRequest continue; } - if( this.craftOnly() ) - { - this.didSomething = this.craftingTracker.handleCrafting( slotToExport, this.itemToSend, ais, destination, this.getTile().getWorld(), this.getProxy().getGrid(), cg, this.mySrc ) || this.didSomething; - continue; - } + if (this.craftOnly()) { + this.didSomething = this.craftingTracker.handleCrafting(slotToExport, this.itemToSend, ais, destination, this.getTile().getWorld(), this.getProxy().getGrid(), cg, this.mySrc) || this.didSomething; + continue; + } final long before = this.itemToSend; if (this.getInstalledUpgrades(Upgrades.FUZZY) > 0) { for (final IAEItemStack o : ImmutableList.copyOf(inv.getStorageList().findFuzzy(ais, fzMode))) { - this.pushItemIntoTarget(destination, energy, inv, o); - if (this.itemToSend <= 0) { - break; + if (o.getStackSize() > 0) { + this.pushItemIntoTarget(destination, energy, inv, o); + if (this.itemToSend <= 0) { + break; + } } } } else { - if (inv.getStorageList().findPrecise(ais) != null) { + final IAEItemStack o = inv.getStorageList().findPrecise(ais); + if (o != null && o.getStackSize() > 0) { this.pushItemIntoTarget(destination, energy, inv, ais); } } diff --git a/src/main/java/appeng/util/inv/IMEAdaptor.java b/src/main/java/appeng/util/inv/IMEAdaptor.java index 0babb835c..084d088f9 100644 --- a/src/main/java/appeng/util/inv/IMEAdaptor.java +++ b/src/main/java/appeng/util/inv/IMEAdaptor.java @@ -113,7 +113,7 @@ public class IMEAdaptor extends InventoryAdaptor { IAEItemStack out = null; for (final IAEItemStack req : ImmutableList.copyOf(this.getList().findFuzzy(reqFilter, fuzzyMode))) { - if (req != null) { + if (req != null && req.getStackSize() > 0) { req.setStackSize(amount); out = this.target.extractItems(req, type, this.src); if (out != null) {