From 722c5b64d8eb7a220a72b6a1f18668c7e1e2e18d Mon Sep 17 00:00:00 2001 From: way2muchnoise Date: Tue, 3 Jan 2017 15:23:16 +0100 Subject: [PATCH] fix more autocrafting bugs --- .../refinedstorage/apiimpl/autocrafting/CraftingManager.java | 3 ++- .../refinedstorage/apiimpl/autocrafting/CraftingPattern.java | 4 ++-- .../apiimpl/autocrafting/task/CraftingStepProcess.java | 4 ++++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/CraftingManager.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/CraftingManager.java index 2100308b1..03af990d3 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/CraftingManager.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/CraftingManager.java @@ -25,6 +25,7 @@ import net.minecraftforge.items.ItemHandlerHelper; import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.util.*; +import java.util.stream.Collectors; public class CraftingManager implements ICraftingManager { private static final String NBT_CRAFTING_TASKS = "CraftingTasks"; @@ -230,7 +231,7 @@ public class CraftingManager implements ICraftingManager { ItemStack inserted = ItemHandlerHelper.copyStackWithSize(stack, size); for (ICraftingTask task : craftingTasks) { - for (ICraftingStep processable : task.getSteps()) { + for (ICraftingStep processable : task.getSteps().stream().filter(ICraftingStep::hasStartedProcessing).collect(Collectors.toList())) { if (processable.onReceiveOutput(inserted)) { return; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/CraftingPattern.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/CraftingPattern.java index 17f2a740d..9a7e3e14e 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/CraftingPattern.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/CraftingPattern.java @@ -98,7 +98,7 @@ public class CraftingPattern implements ICraftingPattern { } } } else { - outputs = ItemPattern.getOutputs(stack).stream().map(Comparer::stripTags).collect(Collectors.toList()); + outputs = ItemPattern.getOutputs(stack).stream().collect(Collectors.toList()); } if (oreInputs.isEmpty()) { @@ -194,7 +194,7 @@ public class CraftingPattern implements ICraftingPattern { if (cleaned.isEmpty()) { return null; } - outputs.add(Comparer.stripTags(cleaned.copy())); + outputs.add(cleaned.copy()); return outputs; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingStepProcess.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingStepProcess.java index 281633afd..24c1d17bf 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingStepProcess.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingStepProcess.java @@ -84,6 +84,10 @@ public class CraftingStepProcess extends CraftingStep { IItemHandler inventory = getPattern().getContainer().getFacingInventory(); if (insert(inventory, new ArrayDeque<>(actualInputs), true)) { insert(inventory, actualInputs, false); + } else { + // Something went wrong here, redo! + toInsertItems.addAll(actualInputs); + startedProcessing = false; } } }