diff --git a/src/main/java/net/minecraftforge/common/crafting/CraftingHelper.java b/src/main/java/net/minecraftforge/common/crafting/CraftingHelper.java index a534301ccc..788f8d1dd4 100644 --- a/src/main/java/net/minecraftforge/common/crafting/CraftingHelper.java +++ b/src/main/java/net/minecraftforge/common/crafting/CraftingHelper.java @@ -331,12 +331,23 @@ public class CraftingHelper { } ret.input = NonNullList.withSize(ret.width * ret.height, Ingredient.field_193370_a); + + Set keys = Sets.newHashSet(itemMap.keySet()); + keys.remove(' '); + int x = 0; for (char chr : shape.toCharArray()) { - ret.input.add(x++, itemMap.get(chr)); + Ingredient ing = itemMap.get(chr); + if (ing == null) + throw new IllegalArgumentException("Pattern references symbol '" + chr + "' but it's not defined in the key"); + ret.input.set(x++, ing); + keys.remove(chr); } + if (!keys.isEmpty()) + throw new IllegalArgumentException("Key defines symbols that aren't used in pattern: " + keys); + return ret; }