EriAPI

Le framework tout-en-un pour le modding Minecraft Forge 1.12.2 — GUIs, overlays, commandes, donnees, securite et bien plus encore.

Minecraft 1.12.2 Forge 14.23.5.2864 Java 8 v1.2.0

Bienvenue !

Tu veux creer un mod Minecraft avec une belle interface ? Un menu, un tableau de bord, une boutique en jeu, un ecran de parametres ? Tu es au bon endroit.

EriAPI est une bibliotheque (un ensemble de fichiers Java) qui te donne tous les outils pour construire des interfaces graphiques dans Minecraft Forge 1.12.2. Tu n'as pas a te soucier des details techniques complexes comme OpenGL ou le scaling — le framework s'en occupe pour toi.

Qu'est-ce qu'on peut faire avec EriAPI ?

  • Des menus de jeu (inventaires personnalises, boutiques, echanges entre joueurs)
  • Des ecrans de parametres (sliders, cases a cocher, champs de texte)
  • Des tableaux de bord avec barres de progression et statistiques
  • Des formulaires (connexion, creation de personnage, inscription)
  • Des listes scrollables (classements, historique, selection d'options)
  • Des graphiques (LineChart, BarChart, PieChart)
  • Des overlays HUD draggables avec auto-snap et editeur visuel
  • Des commandes avec auto-completion et sous-commandes
  • Du stockage de donnees joueur persistantes (survival aux redemarrages, sync auto)
  • De la communication reseau client-serveur pour les GUIs
  • De la protection anti-duplication pour les conteneurs
  • De la configuration avec GUI auto-genere
  • Et n'importe quelle autre fonctionnalite que tu peux imaginer !
Cette documentation est pour les debutants

On part du principe que tu ne connais pas Java et que tu n'as jamais fait de mod Minecraft. Chaque concept est explique depuis zero. Si quelque chose n'est pas clair, c'est un bug dans la doc — pas dans ta tete.

Si tu es un moddeur experimente, tu peux sauter directement a la page du module qui t'interesse via la barre laterale.

01
Installe les outils

Java, un editeur de code (IntelliJ), et Forge MDK. On t'explique tout en detail.

02
Ajoute EriAPI

Quelques lignes dans un fichier de config et tu as acces a tous les composants.

03
Cree ta premiere GUI

Quelques minutes et tu as un vrai menu dans Minecraft, que tu peux ouvrir avec une commande.

Installation

Avant de coder quoi que ce soit, il faut installer les bons outils sur ton ordinateur. Suis ces etapes dans l'ordre.

Etape 1 — Installer Java 8 JDK

Java est le langage de programmation qu'utilise Minecraft. Le JDK (Java Development Kit) est la boite a outils qui te permet d'ecrire et de compiler du code Java. C'est obligatoire.

Telecharge Amazon Corretto 8 (une version gratuite et stable de Java 8) : Telecharger Corretto 8 pour Windows (64-bit)

Lance le fichier .msi telecharge et clique "Suivant" jusqu'a la fin. C'est tout.

Java 8 uniquement !

Minecraft Forge 1.12.2 fonctionne uniquement avec Java 8. N'installe pas Java 11, 17 ou 21 — ca ne marchera pas.

Etape 2 — Installer IntelliJ IDEA

Un IDE (Integrated Development Environment) est un logiciel pour ecrire du code. C'est comme Word, mais pour le code Java — avec la coloration, les suggestions automatiques et la detection d'erreurs.

On recommande IntelliJ IDEA Community Edition (gratuit) : Telecharger IntelliJ IDEA

Telecharge la version Community (pas Ultimate, qui est payante). Installe-la normalement.

Etape 3 — Telecharger Forge MDK

Le MDK (Mod Development Kit) est le projet de base pour creer des mods Minecraft avec Forge. C'est lui qui contient toutes les APIs de Minecraft et de Forge.

Telecharge Forge 1.12.2-14.23.5.2864 MDK : Telecharger Forge 1.12.2 MDK

Extrais le ZIP dans un dossier (par exemple C:\Mods\MonMod\). Tu obtiens un dossier avec des fichiers comme build.gradle, gradlew.bat, etc.

Etape 4 — Ajouter EriAPI a ton projet

Ouvre le fichier build.gradle dans IntelliJ et remplace son contenu par ceci. Les lignes importantes sont marquees dans les commentaires.

build.gradle — Configuration complete
buildscript {
    repositories {
        maven { url = 'https://maven.minecraftforge.net' }
        mavenCentral()
    }
    dependencies {
        classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '3.+', changing: true
    }
}

apply plugin: 'net.minecraftforge.gradle'
apply plugin: 'java'

group = 'fr.tonnom.tonmod'
version = '1.0'
archivesBaseName = 'monmod'

sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8

minecraft {
    mappings channel: 'stable', version: '39-1.12'
    runs {
        client {
            workingDirectory project.file('run')
            property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYEVENTS'
            property 'forge.logging.console.level', 'debug'
        }
        server {
            workingDirectory project.file('run')
            property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYEVENTS'
            property 'forge.logging.console.level', 'debug'
        }
    }
}

repositories {
    flatDir { dirs 'libs' }
    maven { url = 'https://maven.minecraftforge.net' }
    mavenCentral()
}

dependencies {
    minecraft 'net.minecraftforge:forge:1.12.2-14.23.5.2864'
    implementation(name: 'eriapi-1.2.0-1.12.2', ext: 'jar')
}
Comment ajouter le fichier EriAPI.jar

Cree un dossier libs dans la racine de ton projet (la ou se trouve build.gradle). Copie le fichier eriapi-1.2.0-1.12.2.jar dedans. Gradle le trouvera automatiquement.

Etape 5 — Generer le projet IntelliJ

Terminal — Commandes d'initialisation
# Genere les configurations de lancement pour IntelliJ
./gradlew genIntellijRuns

# Puis ouvre le projet dans IntelliJ :
# File > Open > selectionne le dossier de ton projet
Verifier que tout fonctionne

Lance ./gradlew build dans le terminal. Si tu vois BUILD SUCCESSFUL et un fichier .jar dans build/libs/, l'installation est reussie !

Mon Premier GUI

On va creer ensemble ton premier menu Minecraft de A a Z. A la fin de ce tutoriel, tu pourras taper une commande dans le jeu et voir apparaitre un vrai menu avec un titre et un bouton.

Avant de commencer

Assure-toi d'avoir suivi la section Installation. Ton projet doit se compiler sans erreur (./gradlew build doit afficher BUILD SUCCESSFUL).

Etape 1 — Creer le fichier du menu

Dans IntelliJ, navigue dans src/main/java/ et trouve le package de ton mod. Cree un nouveau dossier (package) appele gui dedans, puis un fichier MonPremierMenu.java.

Java — MonPremierMenu.java
package fr.tonnom.tonmod.gui;

import fr.eri.eriapi.gui.EriGuiScreen;
import fr.eri.eriapi.gui.components.Button;
import fr.eri.eriapi.gui.components.Label;
import fr.eri.eriapi.gui.util.Colors;

public class MonPremierMenu extends EriGuiScreen {

    public MonPremierMenu() {
        super(1920, 1080); // Espace de design 1920x1080
    }

    @Override
    public void initGui() {
        super.initGui();

        // Titre
        addComponent(new Label(760, 100, 400, 30)
            .text("Mon Premier Menu")
            .color(Colors.WHITE)
            .align(Label.Align.CENTER)
            .scale(1.5f));

        // Bouton
        addComponent(new Button(760, 500, 400, 50)
            .text("Cliquer ici !")
            .colorScheme(Button.Style.CYAN)
            .cornerRadius(8)
            .onClick(() -> this.close()));
    }
}

Etape 2 — Creer une commande pour ouvrir le menu

Java — CommandMonMenu.java
package fr.tonnom.tonmod.command;

import net.minecraft.command.CommandBase;
import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.server.MinecraftServer;
import net.minecraft.client.Minecraft;
import fr.tonnom.tonmod.gui.MonPremierMenu;

public class CommandMonMenu extends CommandBase {
    @Override public String getName() { return "monmenu"; }
    @Override public String getUsage(ICommandSender sender) { return "/monmenu"; }

    @Override
    public void execute(MinecraftServer server, ICommandSender sender, String[] args) {
        if (sender instanceof EntityPlayer) {
            Minecraft.getMinecraft().displayGuiScreen(new MonPremierMenu());
        }
    }
}

Etape 3 — Enregistrer la commande

Java — Classe principale de ton mod
@Mod.EventHandler
public void init(FMLInitializationEvent event) {
    net.minecraftforge.client.ClientCommandHandler.instance
        .registerCommand(new CommandMonMenu());
}

Etape 4 — Tester

Terminal
./gradlew runClient

En jeu, tape /monmenu dans le chat. Ton menu apparait !

Felicitations !

Tu viens de creer ta premiere interface graphique Minecraft avec EriAPI. Explore maintenant les modules ci-dessous pour decouvrir tout ce que tu peux faire.

Modules

EriAPI est organise en modules independants. Chaque module a sa propre page de documentation detaillee.

GUI Framework

48+ composants pour creer des interfaces graphiques : boutons, labels, sliders, listes scrollables, graphiques, color picker, onglets, champs de texte, et plus encore.

Disponible
Config System

Systeme de configuration par annotations. GUI auto-genere, sync serveur/client, hot-reload.

Disponible
Command Framework

Builder fluent pour commandes. Arguments types, tab-completion, cooldowns, permissions, help auto.

Disponible
Content Builder

Creation d'items et blocks en fluent API. Auto-registry, modeles runtime, recettes.

Disponible
Overlay HUD

Elements HUD persistants affiches pendant le jeu. Ancrage 9 positions, layers de rendu, effets visuels (Aurora, Starfield, Particules), animations avec scope.

Disponible
Animation System

Blocs, items et entites animes avec modeles Blockbench. TESR, keyframes, easings, spin, textures dynamiques. Pipeline unifie pour les trois categories.

Disponible
Data & Storage

Persistance de donnees par annotations. POJO annote, sync auto, multi-scope (player/world/global).

Disponible
Scheduler

Planification de taches. Delay, repeat, async, chain, cancel.

Disponible
Chat Builder

Messages chat riches en fluent API. Couleurs, cliquable, hover, pagination.

Disponible
Capability Helpers

Capabilities simplifiees. 1 annotation au lieu de 6 fichiers. Sync auto.

Disponible
Event Simplifier

Events lambda en one-liner. Filtres, priorite, once, expire automatique.

Disponible
Keybinding Manager

Keybindings avances. Combos, double-tap, contextes, detection de conflits automatique.

Disponible
Network GUI

Communication client-serveur pour les GUIs. Envoi d'actions, reception de donnees, ouverture de GUI depuis le serveur.

Disponible
Security Framework

Protection anti-duplication pour les conteneurs. Verrous de transaction, validation serveur, prevention des exploits inventaire.

Disponible
Patchnote

Historique des versions et changements. Toutes les nouveautes, corrections et ameliorations documentees par version.

Disponible

Pourquoi EriAPI ?

Fluent API Ecris du code lisible en enchainant les methodes comme une phrase.
Auto-scaling Dessine en 1920x1080, le framework adapte automatiquement a toutes les resolutions.
48+ composants Boutons, sliders, listes, graphiques, color picker, onglets, champs de texte...
Textures & 9-Slice Applique des textures PNG sur n'importe quel composant avec 5 modes de scaling.
Animations FadeIn, slideIn, shake, scale avec 8 fonctions d'easing et interpolation sub-tick.
Reseau integre Packets client/serveur pre-configures pour la communication GUI.