From 4937b44c5d747600ae076b7c5f895bba2553ddf9 Mon Sep 17 00:00:00 2001 From: mezz Date: Fri, 20 Oct 2017 23:17:02 -0700 Subject: [PATCH] Fix duplicate items when they are added by a mod at runtime from the API --- .../java/mezz/jei/ingredients/IngredientRegistry.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/mezz/jei/ingredients/IngredientRegistry.java b/src/main/java/mezz/jei/ingredients/IngredientRegistry.java index 271012449..5bfae0036 100644 --- a/src/main/java/mezz/jei/ingredients/IngredientRegistry.java +++ b/src/main/java/mezz/jei/ingredients/IngredientRegistry.java @@ -165,15 +165,20 @@ public void addIngredientsAtRuntime(Class ingredientClass, List ingred IIngredientHelper ingredientHelper = getIngredientHelper(ingredientClass); //noinspection unchecked Set set = ingredientsMap.computeIfAbsent(ingredientClass, k -> IngredientSet.create(ingredientClass, ingredientHelper)); + List newIngredients = new ArrayList<>(ingredients.size()); for (V ingredient : ingredients) { - set.add(ingredient); + if (set.add(ingredient)) { + newIngredients.add(ingredient); + } if (ingredient instanceof ItemStack) { getStackProperties((ItemStack) ingredient); } } - NonNullList ingredientListElements = IngredientListElementFactory.createList(this, ingredientClass, ingredients, modIdHelper); - ingredientFilter.addIngredients(ingredientListElements); + if (!newIngredients.isEmpty()) { + NonNullList ingredientListElements = IngredientListElementFactory.createList(this, ingredientClass, newIngredients, modIdHelper); + ingredientFilter.addIngredients(ingredientListElements); + } } @Override