From 5e70ee45be77df11a37b5df35bedbe07e1b0075f Mon Sep 17 00:00:00 2001 From: LexManos Date: Wed, 14 Jun 2017 15:59:59 -0700 Subject: [PATCH] Fix CraftingHelper.parseShapred error. Closes #3979 --- .../common/crafting/CraftingHelper.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) 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; }