diff --git a/src/main/java/gregtech/common/metatileentities/storage/CraftingRecipeLogic.java b/src/main/java/gregtech/common/metatileentities/storage/CraftingRecipeLogic.java index 457b2e421f3..a21721b472b 100644 --- a/src/main/java/gregtech/common/metatileentities/storage/CraftingRecipeLogic.java +++ b/src/main/java/gregtech/common/metatileentities/storage/CraftingRecipeLogic.java @@ -299,6 +299,7 @@ private boolean simulateExtractItem(ItemStack itemStack, int count) { // cache is not correct if (slotStack.isEmpty() || !this.strategy.equals(slotStack, itemStack)) { slotItr.remove(); + if (!slotItr.hasNext()) stackLookupMap.remove(itemStack); slot = handleCacheMiss(itemStack); if (slot == -1) return false; slotStack = availableHandlers.getStackInSlot(slot); @@ -389,10 +390,10 @@ public int handleCacheMiss(ItemStack stack) { if (curStack.isEmpty()) continue; Set slots; - if (stackLookupMap.containsKey(stack)) - slots = stackLookupMap.get(stack); - else { - stackLookupMap.put(stack.copy(), slots = new IntArraySet()); + if (stackLookupMap.containsKey(curStack)) { + slots = stackLookupMap.get(curStack); + } else { + stackLookupMap.put(curStack.copy(), slots = new IntArraySet()); } slots.add(i);