VoidCallerZ Posted March 24, 2022 Posted March 24, 2022 I have a compressed variant of all vanilla tipped arrows. I followed all the code from vanilla for registering, effects etc. Now the arrows have appeared (Color still needs fixing aswell though) but the recipes don't work. Now I see vanilla has RecipeSerializer.java where the TIPPED_ARROW recipe is registered with a TippedArrowRecipe::new I have my own TippedArrowRecipe (UcTippedArrowRecipe) and I'm trying to register the recipe through UcRecipeSerializer.java, but when I do so I get the error "java.lang.IllegalStateException: Can not register to a locked registry. Modder should use Forge Register methods.". I can see I need to use Forge Register methods, but I'm not sure how to implement this properly. From looking up on Google I mostly get 1.16.x versions using IRecipe, which doesn't seem to exist in 1.18.x public interface UcRecipeSerializer<T extends Recipe<?>> extends IForgeRegistryEntry<UcRecipeSerializer<?>> { SimpleRecipeSerializer<UcTippedArrowRecipe> COMPRESSED_TIPPED_ARROW = register("crafting_special_compressed_tipped_arrow", new SimpleRecipeSerializer<>(UcTippedArrowRecipe::new)); static <S extends UcRecipeSerializer<T>, T extends Recipe<?>> S register(String pKey, S pRecipeSerializer) { return Registry.register(Registry.RECIPE_SERIALIZER, pKey, pRecipeSerializer); } } This interface is then called in UcRecipes.java which is the recipes class for datageneration. SpecialRecipeBuilder.special(UcRecipeSerializer.COMPRESSED_TIPPED_ARROW).save(consumer, "compressed_tipped_arrow"); Any help in the right direction would be appreciated! And please ask if there are any additional questions or more code is required. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.