Learn · concepts

Qu'est-ce qu'un intermédiaire ? Les cartes Minecraft expliquées

Fabric est une couche de nommage stable qui permet d'obscurcir le code Minecraft. Les mods continuent de fonctionner d'une version à l'autre sans se casser lorsque les champs sont renommés.

TRtrolPublished 5 min read

Qu'est-ce qu'Intermediary ?

Intermediary est la couche de nommage stable que Fabric superpose au code obscurci de Minecraft. Mojang distribue le jeu avec des noms de classes, de champs et de méthodes brouillés qui changent à chaque version. Intermediary donne à chacun de ces noms un nom fixe qui reste le même d'une version à l'autre, permettant ainsi à un mod compilé de toujours trouver le code qu'il corrige, même après les mises à jour du jeu.

Considérez-le comme un contrat : Fabric promet que si quelque chose existe dans le jeu, il aura le même nom Intermediary d'une version à l'autre. C'est ce contrat qui permet à un mod distribué sous forme de fichier jar compilé de continuer à fonctionner sur les nouvelles versions sans être recompilé.

Qu'est-ce qu'Intermediary en réalité ?

Intermediary est un ensemble de correspondances : un tableau de recherche qui associe chaque symbole Minecraft obscurci à un nom stable, généré automatiquement. Une classe que le jeu appelle a pourrait devenir class_1234 dans Intermediary. Le nom n'est pas joli, mais il est permanent pour ce symbole d'une version à l'autre.

Mojang obscurcit le jeu à chaque build. Sans Intermediary, les noms changeraient d'une version à l'autre, ce qui explique pourquoi un mod compilé contre les noms obscurcis bruts cesse de fonctionner dès que le jeu est mis à jour. Intermediary fige ces noms, de sorte que ce sont les correspondances, et non le mod, qui absorbent les changements.

Pourquoi les mods Fabric en ont besoin

Les mods sont distribués après compilation avec des noms Intermédiaires, et non avec les noms lisibles auxquels un développeur écrit. Cette seule décision explique pourquoi un mod Fabric peut continuer à fonctionner sur une nouvelle version du jeu sans recompilation dans de nombreux cas.

Au lancement du jeu, Fabric charge la correspondance Intermédiaire pour cette version et remap les classes du jeu obscurcies vers les noms stables que le mod attend. Le mod et le jeu se rencontrent au milieu sur un ensemble de noms qu'aucun des deux ne distribue en brut.

Correspondances Intermédiaires par rapport aux développeurs

Les développeurs ne lisent ni n'écrivent class_1234. Ils travaillent avec une correspondance lisible comme Yarn ou Mojmap, qui attribuent des noms descriptifs aux symboles. Lors de la compilation, ces noms lisibles sont transformés en Intermédiaire pour la distribution.

CoucheExemple de nomUtilisé parStable d'une version à l'autre
Obscurcia, field_5678Personne manuellementNon
Intermédiaireclass_1234, method_5678Binaires de mod distribuésOui
Yarn / MojmapMinecraftClient, isPlayerSpawned()Développeurs au moment de la compilationLisible, suivi de version

Cette séparation permet aux développeurs de coder avec des noms conviviaux tandis que ce qui est réellement distribué reste stable en termes de version. Les correspondances lisibles peuvent être remplacées ; l'Intermédiaire est le dénominateur commun le plus bas auquel tout le monde est d'accord.

Comment cela s'inscrit dans le cycle de vie d'un mod

  1. Un développeur écrit du code en se basant sur une correspondance lisible, comme Yarn ou Mojmap.
  2. La compilation transforme ces noms en noms intermédiaires.
  3. Le mod est distribué sous forme d'un fichier jar qui fait référence aux symboles intermédiaires.
  4. Au lancement, Fabric retraduit le jeu en cours de son état obscurci vers les noms intermédiaires, permettant ainsi au mod et au jeu de s'aligner.

C'est pourquoi les correspondances sont un élément discret mais essentiel de la modification Fabric : elles constituent le contrat qui garantit que les mods pointent vers le bon code après chaque mise à jour.

FAQ