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 19d6b23d3..ac3f969d8 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/CraftingManager.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/CraftingManager.java @@ -274,6 +274,9 @@ public class CraftingManager implements ICraftingManager { patterns.addAll((((ICraftingPatternContainer) node).getPatterns())); } } + + // Auto reschedules stuck tasks after a pattern rebuild + craftingTasks.forEach(t -> t.getMissing().clear()); } private static ICraftingTask readCraftingTask(INetworkMaster network, NBTTagCompound tag) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java index 5e2681499..0e9944661 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java @@ -433,7 +433,7 @@ public class CraftingTask implements ICraftingTask { @Override public void reschedule() { - List mainSteps = this.mainSteps.stream().filter(s -> s.getPattern() == pattern).collect(Collectors.toList()); + List mainSteps = this.mainSteps.stream().filter(s -> s.getPattern().alike(pattern)).collect(Collectors.toList()); missing.clear(); this.mainSteps.clear(); // if the list of main mainSteps is empty there is no point in rescheduling