From c9a3bcb68b1e34031ef8b32fb8ee8ec416fbabd6 Mon Sep 17 00:00:00 2001 From: SquidDev Date: Wed, 28 Jun 2017 22:08:10 +0100 Subject: [PATCH] Replace direct equality with InventoryUtil.areItemsEqual Some IItemHandler.insertItem implementations clone the item, so we must check whether the object is equal instead. Fixes #340 --- .../java/dan200/computercraft/shared/util/InventoryUtil.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/dan200/computercraft/shared/util/InventoryUtil.java b/src/main/java/dan200/computercraft/shared/util/InventoryUtil.java index 00cf71cc5..da8b9f5b9 100644 --- a/src/main/java/dan200/computercraft/shared/util/InventoryUtil.java +++ b/src/main/java/dan200/computercraft/shared/util/InventoryUtil.java @@ -163,13 +163,13 @@ public class InventoryUtil } // Inspect the slots in order and try to find empty or stackable slots - ItemStack remainder = stack; + ItemStack remainder = stack.copy(); for( int slot : slots ) { if( remainder == null ) break; remainder = inventory.insertItem( slot, remainder, false ); } - return remainder; + return areItemsEqual( stack, remainder ) ? stack : remainder; } private static ItemStack takeItems( int count, IItemHandler inventory, int[] slots )