From 530fa7acacbed30420a51ce2ba94ab083cae6615 Mon Sep 17 00:00:00 2001 From: way2muchnoise Date: Fri, 3 Feb 2017 15:45:44 +0100 Subject: [PATCH] changes to the ore dict list related to changing stacks --- .../refinedstorage/apiimpl/util/StackListItemOredicted.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/StackListItemOredicted.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/StackListItemOredicted.java index 6a232eeb2..65197150e 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/StackListItemOredicted.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/StackListItemOredicted.java @@ -58,9 +58,12 @@ public class StackListItemOredicted implements IStackList { @Override public boolean trackedRemove(@Nonnull ItemStack stack, int size) { + // Calling tracked remove with a stack from get causes the reference to be the same + // When the underlying list empties the stack the reference will become empty, thus we need to copy before hand + ItemStack original = stack.copy(); boolean rvalue = underlyingList.trackedRemove(stack, size); if (underlyingList.needsCleanup) { - touchedIds.addAll(Arrays.stream(OreDictionary.getOreIDs(stack)).boxed().collect(Collectors.toList())); + touchedIds.addAll(Arrays.stream(OreDictionary.getOreIDs(original)).boxed().collect(Collectors.toList())); clean(); } return rvalue;