You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
JEIAddedEvents.registerCategories((e)=>{// The vanilla Anvil recipe category, contains the code that performs the// actual rendering of the recipe inputs and outputs in JEI.const$AnvilRecipeCategory=Java.loadClass('mezz.jei.library.plugins.vanilla.anvil.AnvilRecipeCategory')// RecipeType and the actual underlying processing recipe. Needed to create a// RecipeType for the custom category registration.const$RecipeType=Java.loadClass('mezz.jei.api.recipe.RecipeType')const$IJeiAnvilRecipe=Java.loadClass('mezz.jei.api.recipe.vanilla.IJeiAnvilRecipe')constnutrientInfusionRecipeType=$RecipeType.create('kubejs','nutrient_infusion',$IJeiAnvilRecipe)constguiHelper=e.data.jeiHelpers.guiHelper// Create an concrete instance of the anvil recipe category and defer our// custom category to use its render code.constanvilRecipeCategory=new$AnvilRecipeCategory(guiHelper)e.wrap(nutrientInfusionRecipeType,anvilRecipeCategory,(category)=>{category.title('Nutrient Infusion').icon(doubleItemIcon('minecraft:anvil','minecraft:enchanted_golden_apple')).isRecipeHandled(()=>true)// Only relevant recipes are registered})})
which causes the following NPE:
[04:04:31] [ERROR] ! Error in 'JEIAddedEvents.registerCategories': Cannot invoke "mezz.jei.api.gui.drawable.IDrawable.getWidth()" because "background" is null
[04:04:31] [ERROR] ! java.lang.NullPointerException: Cannot invoke "mezz.jei.api.gui.drawable.IDrawable.getWidth()" because "background" is null
[04:04:31] [ERROR] ! at pie.ilikepiefoo.compat.jei.builder.RecipeCategoryBuilder.background(RecipeCategoryBuilder.java:81)
[04:04:31] [ERROR] ! at pie.ilikepiefoo.compat.jei.builder.RecipeCategoryWrapperBuilder.<init>(RecipeCategoryWrapperBuilder.java:27)
[04:04:31] [ERROR] ! at pie.ilikepiefoo.compat.jei.events.RegisterCategoriesEventJS.wrap(RegisterCategoriesEventJS.java:28)
It looks like AnvilRecipeCategory.background is considered deprecated now, it calls IRecipeCategory.getBackground:
Basically, I think you can no longer depend on calls to IRecipeCategory.getBackground
The text was updated successfully, but these errors were encountered:
omgimanerd
changed the title
JEI method deprecation calls NPE in RegisterCategoriesEventJS.wrap
JEI method deprecation causes NPE in RegisterCategoriesEventJS.wrap
Oct 11, 2024
I reopened the relevant ticket again on the kubejs discord too. Using my original workaround of this:
e.custom('kubejs:nutrient_infusion',(category)=>{category.title('Nutrient Infusion').background(guiHelper.createBlankDrawable(anvilRecipeCategory.getWidth(),anvilRecipeCategory.getHeight())).icon(doubleItemIcon('minecraft:anvil','minecraft:enchanted_golden_apple')).isRecipeHandled(()=>true).handleLookup((builder,recipe,focuses)=>{// TODO currently broken: anvilRecipeCategory.createRecipeExtras needs// to be called in order to draw the arrow and experience costs.anvilRecipeCategory.setRecipe(builder,recipe,focuses)}).setDrawHandler((recipe,slots,graphics,mouseX,mouseY)=>{anvilRecipeCategory.draw(recipe,slots,graphics,mouseX,mouseY)})})
Where I call all the handlers and defer the draw/handler methods to the AnvilRecipeCategory no longer works because there is now a createRecipeExtras method which is called to draw the arrows and experience cost in the recipe category. I don't see an easy way to call it since I can't get access to a IRecipeExtrasBuilder instance.
I have some code along the lines of the following:
Minecraft Version: 1.20.1
Forge: 47.3.0
KJS Additions: v4.3.2
JEI: v15.20.0.104
which causes the following NPE:
It looks like
AnvilRecipeCategory.background
is considered deprecated now, it calls IRecipeCategory.getBackground:https://github.com/mezz/JustEnoughItems/blob/1.20.1/CommonApi/src/main/java/mezz/jei/api/recipe/category/IRecipeCategory.java#L59
Seems like it is complaining here:
kubejsadditions/common/src/main/java/pie/ilikepiefoo/compat/jei/builder/RecipeCategoryBuilder.java
Line 81 in 6ca4bde
Basically, I think you can no longer depend on calls to
IRecipeCategory.getBackground
The text was updated successfully, but these errors were encountered: