Modify argument in static field initialisation

Hey everyone,

I’ve been working with Forge’s Sponge API for a bit now and it’s been quite clear how to use it so far. But lately I’ve been running into a problem. What I want to do is change the lava in basalt deltas into water. Specifically, in the Features class I want to modify the DELTA field. I.e. here

Code snippet

public static final ConfiguredFeature<?, ?> DELTA = register("delta", Feature.DELTA_FEATURE.withConfiguration(new BasaltDeltasFeature(Features.States.LAVA_BLOCK, Features.States.MAGMA_BLOCK, FeatureSpread.create(3, 4), FeatureSpread.create(0, 2))).withPlacement(Placement.COUNT_MULTILAYER.configure(new FeatureSpreadConfig(40))));

the argument Features.States.LAVA_BLOCK needs to be changed to Features.States.WATER_BLOCK.

My first thought was to use the @ModifyArg annotation, but the problem is that there’s no method to target. It’s possible to inject into Features::register or even Feature::withConfiguration instead, but this seems like a bug-prone workaround. Could someone point me in the right direction?

I hate having to do this, but I’m bumping this thread because I’m still completely stuck.

Static fields are initialized in a method called <clinit>, you might be able to inject into this method

Thank you kind sir, this is precisely what I was looking for.