tterrag1098 / Registrate

Your mod's best friend - keep your registry objects simple and organized
Mozilla Public License 2.0
117 stars 33 forks source link

[1.20.6] NullPointerException in Forge: FMLJavaModLoadingContext.get() is null #68

Closed alnyan closed 4 months ago

alnyan commented 4 months ago

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 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
alnyan commented 4 months ago

Okay, my bad, I failed to check if the library supports 1.20.6 first