Content Guides

Data Components

Registering Data Components

Data components can be registered using a BalmDataComponentTypeRegistrar.

public class ModDataComponents {

    public static Holder<DataComponentType<Unit>> yourDataComponent;

    public static void initialize(BalmDataComponentTypeRegistrar dataComponentTypes) {
        yourDataComponent = dataComponentTypes.register("your_data_component", Codec.unit(Unit.INSTANCE)).asHolder();
    }

}

You can obtain a BalmDataComponentTypeRegistrar through the BalmRegistrars instance passed to your mod initializer, or by registering your mod as a BalmModule.

Using an Initializer

public class YourMod {

    public static void initialize(BalmRegistrars registrars) {
        registrars.dataComponentTypes(ModDataComponents::initialize);
    }

}

Using BalmModule

public class YourMod implements BalmModule {

    @Override
    public void registerDataComponents(BalmDataComponentTypeRegistrar dataComponentTypes) {
        ModDataComponents.initialize(dataComponentTypes);
    }

}