diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/CraftingGridBehavior.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/CraftingGridBehavior.java index 025da9caf..1700d485c 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/CraftingGridBehavior.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/grid/CraftingGridBehavior.java @@ -75,7 +75,10 @@ public class CraftingGridBehavior implements ICraftingGridBehavior { int amountCrafted = 0; ItemStack crafted = grid.getCraftingResult().getStackInSlot(0); + int maxCrafted = crafted.getMaxStackSize(); + ForgeHooks.setCraftingPlayer(player); + // Do while the item is still craftable (aka is the result slot still the same as the original item?) and we don't exceed the max stack size. do { grid.onCrafted(player); @@ -83,7 +86,7 @@ public class CraftingGridBehavior implements ICraftingGridBehavior { craftedItemsList.add(crafted.copy()); amountCrafted += crafted.getCount(); - } while (API.instance().getComparer().isEqual(crafted, grid.getCraftingResult().getStackInSlot(0)) && amountCrafted < crafted.getMaxStackSize()); + } while (API.instance().getComparer().isEqual(crafted, grid.getCraftingResult().getStackInSlot(0)) && amountCrafted < maxCrafted && amountCrafted + crafted.getCount() <= maxCrafted ); INetwork network = grid.getNetwork();