diff --git a/src/main/java/mezz/jei/gui/ingredients/GuiIngredient.java b/src/main/java/mezz/jei/gui/ingredients/GuiIngredient.java index 1d304a818..92f94d906 100644 --- a/src/main/java/mezz/jei/gui/ingredients/GuiIngredient.java +++ b/src/main/java/mezz/jei/gui/ingredients/GuiIngredient.java @@ -107,7 +107,7 @@ public void set(T ingredient, IFocus focus) { public void set(List ingredients, IFocus focus) { this.displayIngredients.clear(); this.allIngredients.clear(); - ingredientHelper.expandSubtypes(ingredients); + ingredients = this.ingredientHelper.expandSubtypes(ingredients); T match = getMatch(ingredients, focus); if (match != null) { diff --git a/src/main/java/mezz/jei/gui/ingredients/GuiIngredientGroup.java b/src/main/java/mezz/jei/gui/ingredients/GuiIngredientGroup.java index b5e674f66..01d431e74 100644 --- a/src/main/java/mezz/jei/gui/ingredients/GuiIngredientGroup.java +++ b/src/main/java/mezz/jei/gui/ingredients/GuiIngredientGroup.java @@ -19,6 +19,7 @@ import mezz.jei.api.recipe.IFocus; import mezz.jei.input.ClickedIngredient; import mezz.jei.input.IClickedIngredient; +import mezz.jei.util.Log; import net.minecraft.client.Minecraft; public class GuiIngredientGroup implements IGuiIngredientGroup { @@ -84,6 +85,13 @@ public void set(int slotIndex, Collection values) { @Override public void set(int slotIndex, List ingredients) { + // Sanitize API input + for (T ingredient : ingredients) { + if (!ingredientClass.isInstance(ingredient)) { + Log.error("Received wrong type of ingredient. Expected {}, got {}", ingredientClass, ingredient.getClass(), new IllegalArgumentException()); + return; + } + } guiIngredients.get(slotIndex).set(ingredients, focus); }