diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/autocrafting/ICraftingPatternProvider.java b/src/main/java/com/raoulvdberge/refinedstorage/api/autocrafting/ICraftingPatternProvider.java index b30c48f69..852af9c2f 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/api/autocrafting/ICraftingPatternProvider.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/autocrafting/ICraftingPatternProvider.java @@ -14,7 +14,7 @@ public interface ICraftingPatternProvider { * Creates a crafting pattern. * * @param world the world - * @param stack the pattern stack + * @param stack the pattern stack, the implementor needs to copy it * @param container the {@link ICraftingPatternContainer} where the pattern is in * @return the crafting pattern */ diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCrafter.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCrafter.java index 1596592a9..1901e89d1 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCrafter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCrafter.java @@ -63,8 +63,7 @@ public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternC ItemStack patternStack = patterns.getStackInSlot(i); if (!patternStack.isEmpty()) { - // We copy the pattern stack because if we remove it from the inventory, the crafting task will use a pattern with an invalid stack... - ICraftingPattern pattern = ((ICraftingPatternProvider) patternStack.getItem()).create(world, patternStack.copy(), this); + ICraftingPattern pattern = ((ICraftingPatternProvider) patternStack.getItem()).create(world, patternStack, this); if (pattern.isValid()) { actualPatterns.add(pattern); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemPattern.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemPattern.java index a38eae241..e2cf07314 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemPattern.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemPattern.java @@ -202,6 +202,7 @@ public class ItemPattern extends ItemBase implements ICraftingPatternProvider { @Override @Nonnull public ICraftingPattern create(World world, ItemStack stack, ICraftingPatternContainer container) { - return new CraftingPattern(world, container, stack); + // We copy the pattern stack because if we remove it from the inventory, the crafting task will use a pattern with an invalid stack... + return new CraftingPattern(world, container, stack.copy()); } }