Jump to content

[1.16.5] ExceptionInInitializerError when registering custom Biome with custom SurfaceBuilder


Recommended Posts

Posted (edited)

I am currently creating a custom dimension with custom biome.
Since the dimension has no real surface that has to be created, i have used the default surfacebuilder (from vanilla), until now.
but now i have created my own surfacebuilder for the biome. but now i get an error when registering the biome.

this is the log:

latest.log

this is the registration class of my biome
this is my biome
and this my surfacebuilder

 

 

Edited by Luis_ST
Posted

There's a little error that sneaks by here that explains the issue: 'Caused by: java.lang.NullPointerException: Registry Object not present: industry:default_deepslate'.

You statically held an instance of a registry object and classloaded the associated object before registry events have passed. Surface builders are registered after biomes after all. Instead, wrap the instance in a supplier. This should be done for all registry objects including the Features. Just make sure to remember to register the configured data during common setup.

At some point, I suggest moving to JSON as your biome could be fully declared within there.

Posted
8 hours ago, ChampionAsh5357 said:

Instead, wrap the instance in a supplier.

like that:?

	public static final RegistryObject<SurfaceBuilder<SurfaceBuilderConfig>> DEFAULT_DEEPSLATE = SURFACE_BUILDERS.register("default_deepslate", 
			DefaultDeepslateSurfaceBuilder::new);

 

8 hours ago, ChampionAsh5357 said:

Just make sure to remember to register the configured data during common setup.

how exactly, is there a class/method i have to use.
I currently use the vanilla registry because I have not found anything from forge for the registration
 

8 hours ago, ChampionAsh5357 said:

At some point, I suggest moving to JSON as your biome could be fully declared within there.

I will think about this, but I will probably not move the biome to json because I hate json

Posted
7 hours ago, Luis_ST said:

like that:?

The ConfiguredSurfaceBuilder when being passed into the biome.

7 hours ago, Luis_ST said:

I currently use the vanilla registry because I have not found anything from forge for the registration

Call the vanilla registry event within common setup. That's when these objects should be registered anyways.

Posted
52 minutes ago, ChampionAsh5357 said:

The ConfiguredSurfaceBuilder when being passed into the biome.

thanks that fixed the problem

53 minutes ago, ChampionAsh5357 said:

Call the vanilla registry event within common setup. That's when these objects should be registered anyways.

I'll change that later, but thanks for your help

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.