EriAPI
Le framework tout-en-un pour le modding Minecraft Forge 1.12.2 — GUIs, overlays, commandes, donnees, securite et bien plus encore.
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 !
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.
Java, un editeur de code (IntelliJ), et Forge MDK. On t'explique tout en detail.
Quelques lignes dans un fichier de config et tu as acces a tous les composants.
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.
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.
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')
}
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
# Genere les configurations de lancement pour IntelliJ
./gradlew genIntellijRuns
# Puis ouvre le projet dans IntelliJ :
# File > Open > selectionne le dossier de ton projet
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.
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.
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
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
@Mod.EventHandler
public void init(FMLInitializationEvent event) {
net.minecraftforge.client.ClientCommandHandler.instance
.registerCommand(new CommandMonMenu());
}
Etape 4 — Tester
./gradlew runClient
En jeu, tape /monmenu dans le chat. Ton menu apparait !
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.
48+ composants pour creer des interfaces graphiques : boutons, labels, sliders, listes scrollables, graphiques, color picker, onglets, champs de texte, et plus encore.
DisponibleSysteme de configuration par annotations. GUI auto-genere, sync serveur/client, hot-reload.
DisponibleBuilder fluent pour commandes. Arguments types, tab-completion, cooldowns, permissions, help auto.
DisponibleCreation d'items et blocks en fluent API. Auto-registry, modeles runtime, recettes.
DisponibleElements HUD persistants affiches pendant le jeu. Ancrage 9 positions, layers de rendu, effets visuels (Aurora, Starfield, Particules), animations avec scope.
DisponibleBlocs, items et entites animes avec modeles Blockbench. TESR, keyframes, easings, spin, textures dynamiques. Pipeline unifie pour les trois categories.
DisponiblePersistance de donnees par annotations. POJO annote, sync auto, multi-scope (player/world/global).
DisponiblePlanification de taches. Delay, repeat, async, chain, cancel.
DisponibleMessages chat riches en fluent API. Couleurs, cliquable, hover, pagination.
DisponibleCapabilities simplifiees. 1 annotation au lieu de 6 fichiers. Sync auto.
DisponibleEvents lambda en one-liner. Filtres, priorite, once, expire automatique.
DisponibleKeybindings avances. Combos, double-tap, contextes, detection de conflits automatique.
DisponibleCommunication client-serveur pour les GUIs. Envoi d'actions, reception de donnees, ouverture de GUI depuis le serveur.
DisponibleProtection anti-duplication pour les conteneurs. Verrous de transaction, validation serveur, prevention des exploits inventaire.
DisponibleHistorique des versions et changements. Toutes les nouveautes, corrections et ameliorations documentees par version.
Disponible