I'm having an issue trying to get Registrate working with my mod.
I've added all the gradle stuff as described in the README.md, with appropriate version for 1.20. I use a lazy Registrate provider inside my @Mod class.
Everything works okay until any of my classes with block/item registrations get loaded, at which point a NullPointerException gets thrown, for example, I get this problem when running runData gradle task and my data provider accesses some block inside MyModBlocks class (which causes it to load and throws an error, I presume).
I might be missing something or my Forge mod is misconfigured, but before switching to Registrate, I used RegisterEvent from ModEventBus to handle my registrations, which worked fine.
Here's an example log of the crash:
Exception in thread "main" java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:118)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at net.minecraftforge.bootstrap.Bootstrap.bootstrapMain(Bootstrap.java:133)
at net.minecraftforge.bootstrap.Bootstrap.start(Bootstrap.java:53)
at net.minecraftforge.bootstrap.ForgeBootstrap.main(ForgeBootstrap.java:19)
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:118)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at SECURE-BOOTSTRAP/net.minecraftforge.fmlloader@1.20.6-50.1.0/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:91)
at SECURE-BOOTSTRAP/net.minecraftforge.fmlloader@1.20.6-50.1.0/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.lambda$makeService$0(CommonLaunchHandler.java:75)
at SECURE-BOOTSTRAP/cpw.mods.modlauncher@10.2.1/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:77)
Caused by: java.lang.reflect.InvocationTargetException
at SECURE-BOOTSTRAP/cpw.mods.modlauncher@10.2.1/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:97)
at SECURE-BOOTSTRAP/cpw.mods.modlauncher@10.2.1/cpw.mods.modlauncher.Launcher.run(Launcher.java:116)
at SECURE-BOOTSTRAP/cpw.mods.modlauncher@10.2.1/cpw.mods.modlauncher.Launcher.main(Launcher.java:75)
at SECURE-BOOTSTRAP/cpw.mods.modlauncher@10.2.1/cpw.mods.modlauncher.BootstrapEntry.main(BootstrapEntry.java:17)
at net.minecraftforge.bootstrap@2.1.3/net.minecraftforge.bootstrap.Bootstrap.moduleMain(Bootstrap.java:188)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
... 4 more
Caused by: java.lang.ExceptionInInitializerError
at TRANSFORMER/nytech@1.0.0/ua.alnyan.nytech.datagen.NyTechBlockStateProvider.registerStatesAndModels(NyTechBlockStateProvider.java:20)
Caused by: java.lang.ExceptionInInitializerError
at TRANSFORMER/forge@50.1.0/net.minecraftforge.client.model.generators.BlockStateProvider.run(BlockStateProvider.java:100)
at TRANSFORMER/minecraft@1.20.6/net.minecraft.data.HashCache.generateUpdate(HashCache.java:96)
at TRANSFORMER/minecraft@1.20.6/net.minecraft.data.DataGenerator.lambda$run$0(DataGenerator.java:44)
at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:986)
at TRANSFORMER/minecraft@1.20.6/net.minecraft.data.DataGenerator.run(DataGenerator.java:37)
at TRANSFORMER/forge@50.1.0/net.minecraftforge.data.event.GatherDataEvent$DataGeneratorConfig.lambda$runAll$2(GatherDataEvent.java:111)
at SECURE-BOOTSTRAP/cpw.mods.modlauncher@10.2.1/cpw.mods.modlauncher.api.LamdbaExceptionUtils.lambda$rethrowConsumer$0(LamdbaExceptionUtils.java:21)
at java.base/java.util.LinkedHashMap$LinkedValues.forEach(LinkedHashMap.java:833)
at TRANSFORMER/forge@50.1.0/net.minecraftforge.data.event.GatherDataEvent$DataGeneratorConfig.runAll(GatherDataEvent.java:107)
at TRANSFORMER/forge@50.1.0/net.minecraftforge.data.loading.DatagenModLoader.begin(DatagenModLoader.java:79)
at TRANSFORMER/minecraft@1.20.6/net.minecraft.data.Main.main(Main.java:110)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
... 14 more
Caused by: java.lang.NullPointerException: Cannot invoke "net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext.getModEventBus()" because the return value of "net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext.get()" is null
Caused by: java.lang.NullPointerException: Cannot invoke "net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext.getModEventBus()" because the return value of "net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext.get()" is null
at TRANSFORMER/Registrate@1.3.11_mapped_official_1.20.6/com.tterrag.registrate.AbstractRegistrate.getModEventBus(AbstractRegistrate.java:225)
at TRANSFORMER/Registrate@1.3.11_mapped_official_1.20.6/com.tterrag.registrate.Registrate.create(Registrate.java:15)
at TRANSFORMER/nytech@1.0.0/ua.alnyan.nytech.NyTechMod.lambda$static$0(NyTechMod.java:35)
at TRANSFORMER/forge@50.1.0/net.minecraftforge.common.util.Lazy$Fast.get(Lazy.java:55)
at TRANSFORMER/nytech@1.0.0/ua.alnyan.nytech.registry.ModBlocks.lambda$registerOreVariants$2(ModBlocks.java:36)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
....
at java.base/java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:627)
at TRANSFORMER/nytech@1.0.0/ua.alnyan.nytech.registry.ModBlocks.registerOreVariants(ModBlocks.java:41)
at TRANSFORMER/nytech@1.0.0/ua.alnyan.nytech.registry.ModBlocks.lambda$registerOreBlocks$0(ModBlocks.java:29)
at java.base/java.util.Arrays$ArrayList.forEach(Arrays.java:4305)
at TRANSFORMER/nytech@1.0.0/ua.alnyan.nytech.registry.ModBlocks.registerOreBlocks(ModBlocks.java:28)
at TRANSFORMER/nytech@1.0.0/ua.alnyan.nytech.registry.ModBlocks.<clinit>(ModBlocks.java:22)
... 27 more
> Task :runData FAILED
Forge version: 50.1.0 Registrate version: MC1.20-1.3.11
I'm having an issue trying to get Registrate working with my mod. I've added all the gradle stuff as described in the README.md, with appropriate version for 1.20. I use a lazy Registrate provider inside my
@Mod
class. Everything works okay until any of my classes with block/item registrations get loaded, at which point a NullPointerException gets thrown, for example, I get this problem when runningrunData
gradle task and my data provider accesses some block inside MyModBlocks class (which causes it to load and throws an error, I presume).I might be missing something or my Forge mod is misconfigured, but before switching to Registrate, I used RegisterEvent from ModEventBus to handle my registrations, which worked fine.
Here's an example log of the crash: