00
:
00
:
00
:
00
Corso SEO AI - Usa SEOEMAIL al checkout per il 30% di sconto

Lifecycle & Entrypoints

Entrypoints

In fabric.mod.json, definisci i punti di ingresso della tua mod. Fabric non cerca una classe “Main” a caso, ma segue specifiche interfacce.

```json “entrypoints”: { “main”: [ “com.example.ExampleMod” ], “client”: [ “com.example.client.ExampleModClient” ], “server”: [ “com.example.server.ExampleModServer” ] } ```

1. Common Initializer (main)

La classe definita qui deve implementare ModInitializer. Questo codice viene eseguito sia sul Client che sul Server. Qui registri:

  • Blocchi
  • Items
  • Sounds
  • Enchantments
  • Eventi comuni

```java public class ExampleMod implements ModInitializer { @Override public void onInitialize() { // Registrazione blocchi, item, ecc. } } ```

2. Client Initializer (client)

Implementa ClientModInitializer. Eseguito solo se il gioco è un Client fisico. Qui registri:

  • Renderers (Entity, BlockEntity)
  • Keybindings
  • Particle factories
  • HUD/GUI screens
  • Color providers (es. erba, foglie)

[!WARNING] Mai riferirsi a classi Client (es. MinecraftClient, KeyBinding) nel codice Common o Server. Il server crasherà immediatamente (ClassNotFoundException).

3. Server Initializer (server)

Implementa DedicatedServerModInitializer. Raro da usare, serve per logica esclusiva del server dedicato.