From a1ff3960d8b05a58c8fb56e209065f3f5275e77a Mon Sep 17 00:00:00 2001 From: way2muchnoise Date: Thu, 2 Feb 2017 17:41:34 +0100 Subject: [PATCH] some changes to make sure 1.11 stacks don't mess with the old insert extract code --- .../node/diskmanipulator/NetworkNodeDiskManipulator.java | 6 +++--- .../raoulvdberge/refinedstorage/apiimpl/util/Comparer.java | 7 +++++-- .../raoulvdberge/refinedstorage/tile/TileController.java | 4 ++-- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/diskmanipulator/NetworkNodeDiskManipulator.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/diskmanipulator/NetworkNodeDiskManipulator.java index bb9454d88..fdaa5422e 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/diskmanipulator/NetworkNodeDiskManipulator.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/diskmanipulator/NetworkNodeDiskManipulator.java @@ -168,12 +168,12 @@ public class NetworkNodeDiskManipulator extends NetworkNode implements IComparab ItemStack stack = storage.getStacks().get(i); ItemStack extracted = storage.extract(stack, upgrades.getItemInteractCount(), compare, false); - if (extracted == null) { + if (extracted == null || extracted.isEmpty()) { continue; } ItemStack remainder = network.insertItem(extracted, extracted.getCount(), false); - if (remainder == null) { + if (remainder == null || remainder.isEmpty()) { break; } @@ -201,7 +201,7 @@ public class NetworkNodeDiskManipulator extends NetworkNode implements IComparab int j = 0; - while ((toExtract == null || toExtract.getCount() == 0) && j < networkItems.size()) { + while ((toExtract == null || toExtract.isEmpty()) && j < networkItems.size()) { toExtract = networkItems.get(j++); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/Comparer.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/Comparer.java index 754fa6bfe..c3289538b 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/Comparer.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/Comparer.java @@ -149,11 +149,14 @@ public class Comparer implements IComparer { return EnumActionResult.FAIL; } - if (left.isEmpty() && right.isEmpty()) { + boolean leftEmpty = left.isEmpty(); + boolean rightEmpty = right.isEmpty(); + + if (leftEmpty && rightEmpty) { return EnumActionResult.SUCCESS; } - if ((left.isEmpty() && !right.isEmpty()) || (!left.isEmpty() && right.isEmpty())) { + if ((leftEmpty && !rightEmpty) || (!rightEmpty) && rightEmpty) { return EnumActionResult.FAIL; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java index a92a3a344..26a021df6 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java @@ -446,7 +446,7 @@ public class TileController extends TileBase implements INetworkMaster, IRedston inserted += storage.getCacheDelta(storedPre, size, remainder); } - if (remainder == null) { + if (remainder == null || remainder.isEmpty()) { // The external storage is responsible for sending changes, we don't need to anymore if (storage instanceof StorageItemExternal && !simulate) { ((StorageItemExternal) storage).detectChanges(this); @@ -490,7 +490,7 @@ public class TileController extends TileBase implements INetworkMaster, IRedston took = storage.extract(stack, requested - received, flags, simulate); } - if (took != null) { + if (took != null && !took.isEmpty()) { // The external storage is responsible for sending changes, we don't need to anymore if (storage instanceof StorageItemExternal && !simulate) { ((StorageItemExternal) storage).detectChanges(this);