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

Eventi & Mixins

Events (Fabric API)

Fabric offre molti eventi “sicuri” per interagire con il gioco senza rompere tutto. Usa sempre gli eventi se possibile.

Esempio: Fare qualcosa quando un blocco viene rotto.

```java PlayerBlockBreakEvents.AFTER.register((world, player, pos, state, blockEntity) -> { if (state.getBlock() == Blocks.DIAMOND_ORE) { player.sendMessage(Text.of(“Hai rotto un diamante!”), false); } }); ```

Mixins

Se non c’è un evento per quello che vuoi fare, devi usare i Mixin. I Mixin ti permettono di iniettare il tuo codice dentro le classi di Minecraft (o di altre mod!) a runtime.

[!CAUTION] I Mixin sono potenti ma pericolosi. Se due mod modificano lo stesso metodo in modi incompatibili, il gioco crasherà.

Esempio: Cambiare il titolo del gioco

Vogliamo modificare la classe TitleScreen.

```java @Mixin(TitleScreen.class) public class TitleScreenMixin {

@Inject(at = @At("HEAD"), method = "init()V")
private void init(CallbackInfo info) {
    System.out.println("Mixin attivato! Sono nella schermata dei titoli.");
}

} ```

Struttura Mixin

  1. @Mixin: Quale classe stiamo modificando?
  2. @Inject: Dove inseriamo il codice? (HEAD = inizio, RETURN = fine).
  3. method: La firma esatta del metodo target.
  4. CallbackInfo: Oggetto per controllare il flusso (es. cancellare l’esecuzione originale).