Skip to content

Creating the Entrypoint

To integrate with Packed Packs, you must implement the PackedPacksInitializer interface. This serves as the single entry point for your mod to interact with the API.

Implementing the Initializer

The onInitialize method provides you with the PackedPacksApi instance.

IMPORTANT

The onInitialize method may be called off the main thread. Ensure your registration logic is thread-safe.

MyPackedPacksIntegration.java
java
public class MyPackedPacksIntegration implements PackedPacksInitializer {
    @Override
    public void onInitialize(PackedPacksApi api) {
        // Access core services
        PreferenceRegistry preferences = api.preferences();
        EventBus eventBus = api.eventBus();
    }
}

Registering the Initializer

Fabric

Register your implementation in fabric.mod.json under the packed_packs entrypoint key:

fabric.mod.json
json
"entrypoints": {
  "packed_packs": ["com.example.modid.MyPackedPacksIntegration"]
}

NeoForge

Use the standard Java ServiceLoader SPI. Create a provider configuration file:

  • META-INF
    • services
      • io.github.fishstiz.packed_packs.api.PackedPacksInitializer
io.github.fishstiz.packed_packs.api.PackedPacksInitializer
com.example.mod.MyMyPackedPacksIntegration