diff --git a/src/main/java/appeng/integration/modules/jei/JEIPlugin.java b/src/main/java/appeng/integration/modules/jei/JEIPlugin.java index 589ad2d7c7f..11f918f14e7 100644 --- a/src/main/java/appeng/integration/modules/jei/JEIPlugin.java +++ b/src/main/java/appeng/integration/modules/jei/JEIPlugin.java @@ -44,9 +44,11 @@ import mezz.jei.config.Constants; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.NonNullList; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.Optional; @@ -185,8 +187,17 @@ private void registerInscriberRecipes(IDefinitions definitions, IModRegistry reg private void registerFacadeRecipe(IDefinitions definitions, IModRegistry registry) { Optional itemFacade = definitions.items().facade().maybeItem(); Optional cableAnchor = definitions.parts().cableAnchor().maybeStack(1); - if (itemFacade.isPresent() && cableAnchor.isPresent() && AEConfig.instance().isFeatureEnabled(AEFeature.ENABLE_FACADE_CRAFTING)) { - registry.addRecipeRegistryPlugin(new FacadeRegistryPlugin((ItemFacade) itemFacade.get(), cableAnchor.get())); + if (itemFacade.isPresent()) { + var facade = (ItemFacade)itemFacade.get(); + if (cableAnchor.isPresent() && AEConfig.instance().isFeatureEnabled(AEFeature.ENABLE_FACADE_CRAFTING)){ + registry.addRecipeRegistryPlugin(new FacadeRegistryPlugin(facade, cableAnchor.get())); + } + + // Hide facades from JEI/HEI except for the first found. + var list = NonNullList.create(); + facade.getSubItems(Objects.requireNonNull(facade.getCreativeTab()), list); + list.stream().skip(1) + .forEach(registry.getJeiHelpers().getIngredientBlacklist()::addIngredientToBlacklist); } }