3434import net .minecraft .resources .ResourceLocation ;
3535import net .minecraft .world .item .ItemStack ;
3636import net .minecraft .world .item .crafting .Recipe ;
37+ import net .minecraft .world .item .crafting .RecipeHolder ;
3738import net .minecraft .world .item .crafting .RecipeType ;
3839import net .minecraft .world .level .ItemLike ;
3940
@@ -49,7 +50,7 @@ public ResourceLocation getPluginUid() {
4950 }
5051
5152 public IIngredientManager ingredientManager ;
52- final List <CreateRecipeCategory <?>> ALL = new ArrayList <>();
53+ static final List <CreateRecipeCategory <?>> ALL = new ArrayList <>();
5354
5455 @ Override
5556 public void registerCategories (IRecipeCategoryRegistration registration ) {
@@ -89,7 +90,7 @@ public void registerRecipes(IRecipeRegistration registration) {
8990 public void registerRecipeCatalysts (IRecipeCatalystRegistration registration ) {
9091 ALL .forEach (c -> c .registerCatalysts (registration ));
9192
92- registration .getJeiHelpers ().getRecipeType (ResourceLocation .fromNamespaceAndPath ("create" , "sandpaper_polishing" ), SandPaperPolishingRecipe . class ).ifPresent (type -> {
93+ registration .getJeiHelpers ().getRecipeType (ResourceLocation .fromNamespaceAndPath ("create" , "sandpaper_polishing" )).ifPresent (type -> {
9394 registration .addRecipeCatalyst (new ItemStack (CAItems .DIAMOND_GRIT_SANDPAPER .get ()), type );
9495 });
9596 //registration.addRecipeCatalyst(new ItemStack(CAItems.DIAMOND_GRIT_SANDPAPER.get()), new ResourceLocation(Create.ID, "deploying"));
@@ -99,27 +100,27 @@ private <T extends Recipe<?>> CategoryBuilder<T> builder(Class<? extends T> reci
99100 return new CategoryBuilder <>(recipeClass );
100101 }
101102
102- private class CategoryBuilder <T extends Recipe <?>> {
103+ private static class CategoryBuilder <T extends Recipe <?>> {
103104 private final Class <? extends T > recipeClass ;
104105 private Predicate <CRecipes > predicate = cRecipes -> true ;
105106
106107 private IDrawable background ;
107108 private IDrawable icon ;
108109
109- private final List <Consumer <List <T >>> recipeListConsumers = new ArrayList <>();
110+ private final List <Consumer <List <RecipeHolder < T > >>> recipeListConsumers = new ArrayList <>();
110111 private final List <Supplier <? extends ItemStack >> catalysts = new ArrayList <>();
111112
112113 public CategoryBuilder (Class <? extends T > recipeClass ) {
113114 this .recipeClass = recipeClass ;
114115 }
115116
116- public CategoryBuilder <T > addRecipeListConsumer (Consumer <List <T >> consumer ) {
117+ public CategoryBuilder <T > addRecipeListConsumer (Consumer <List <RecipeHolder < T > >> consumer ) {
117118 recipeListConsumers .add (consumer );
118119 return this ;
119120 }
120121
121122 public CategoryBuilder <T > addTypedRecipes (Supplier <RecipeType <? extends T >> recipeType ) {
122- return addRecipeListConsumer (recipes -> CreateJEI .<T >consumeTypedRecipes (recipes :: add , recipeType .get ()));
123+ return addRecipeListConsumer (recipes -> CreateJEI .<T >consumeTypedRecipes (( holder ) -> recipes . add (( RecipeHolder < T >) holder ) , recipeType .get ()));
123124 }
124125
125126 public CategoryBuilder <T > catalystStack (Supplier <ItemStack > supplier ) {
@@ -152,6 +153,7 @@ public CategoryBuilder<T> emptyBackground(int width, int height) {
152153 return this ;
153154 }
154155
156+ /*
155157 public CreateRecipeCategory<T> build(String name, CreateRecipeCategory.Factory<T> factory) {
156158 Supplier<List<T>> recipesSupplier;
157159 if (predicate.test(AllConfigs.server().recipes)) {
@@ -162,13 +164,33 @@ public CreateRecipeCategory<T> build(String name, CreateRecipeCategory.Factory<T
162164 return recipes;
163165 };
164166 } else {
165- recipesSupplier = () -> Collections .emptyList ();
167+ recipesSupplier = Collections::emptyList;
168+ }
169+
170+ CreateRecipeCategory.Info<T> info = new CreateRecipeCategory.Info<>(
171+ new mezz.jei.api.recipe.RecipeType<>(CreateAddition.asResource(name), recipeClass),
172+ Component.translatable(CreateAddition.MODID + ".recipe." + name), background, icon, recipesSupplier, catalysts);
173+ return factory.create(info);
174+ }*/
175+
176+ public CreateRecipeCategory <T > build (String name , CreateRecipeCategory .Factory <T > factory ) {
177+ Supplier <List <RecipeHolder <T >>> recipesSupplier ;
178+ if (predicate .test (AllConfigs .server ().recipes )) {
179+ recipesSupplier = () -> {
180+ List <RecipeHolder <T >> recipes = new ArrayList <>();
181+ for (Consumer <List <RecipeHolder <T >>> consumer : recipeListConsumers )
182+ consumer .accept (recipes );
183+ return recipes ;
184+ };
185+ } else {
186+ recipesSupplier = Collections ::emptyList ;
166187 }
167188
168189 CreateRecipeCategory .Info <T > info = new CreateRecipeCategory .Info <>(
169190 new mezz .jei .api .recipe .RecipeType <>(CreateAddition .asResource (name ), recipeClass ),
170191 Component .translatable (CreateAddition .MODID + ".recipe." + name ), background , icon , recipesSupplier , catalysts );
171192 CreateRecipeCategory <T > category = factory .create (info );
193+ ALL .add (category );
172194 return category ;
173195 }
174196 }
0 commit comments