- Intermediary ist die stabile Namensschicht, die Fabric über den verschleierten Code von Minecraft legt.
- Es vergibt jedem verschleierten Symbol einen festen Namen, der über Versionen hinweg gleich bleibt.
- Kompilierte Fabric-Mods werden mit Intermediary-Namen ausgeliefert, nicht mit lesbaren.
- Es reduziert Ausfälle bei Updates, kann aber einen Mod nicht vor entferntem Spielcode schützen.
Intermediary ist die stabile Namensschicht, die Fabric über den verschleierten Code von Minecraft legt. Mojang liefert das Spiel mit durcheinander gebrachten Klassennamen, Feldnamen und Methodennamen aus, die sich bei jeder Veröffentlichung ändern. Intermediary gibt jedem dieser Elemente einen festen Namen, der über Versionen hinweg gleich bleibt, sodass ein kompilierter Mod den Code, den er patcht, weiterhin findet, selbst nachdem sich das Spiel darunter aktualisiert hat.
Wo Opal passt
Opal ist ein Fabric-Mod, daher ist es wie jeder andere Fabric-Mod auf diese Mapping-Schicht angewiesen. Du konfigurierst es nicht manuell; der Einrichtungsleitfaden bringt dich zum Laufen.
Was ist Intermediary eigentlich?
Intermediary ist eine Menge von Zuordnungen: eine Nachschlagetabelle, die jedes verschleierte Minecraft-Symbol mit einem stabilen, maschinengenerierten Namen paart. Eine Klasse, die das Spiel a nennt, könnte in Intermediary zu class_1234 werden. Der Name ist hässlich, aber er ist für dieses Symbol über alle Releases hinweg dauerhaft.
Mojang verschleiert das Spiel bei jeder Build-Version. Namen wie field_5678 würden sich sonst von Release zu Release ändern, weshalb ein Mod, der gegen die rohen verschleierten Namen kompiliert wurde, beim Update des Spiels sofort kaputt geht. Intermediary fixiert diese Namen, sodass die Zuordnung und nicht der Mod die Veränderungen absorbiert.
Warum Fabric-Mods es benötigen
Mods werden kompiliert und gegen Intermediary-Namen verteilt, nicht gegen die lesbaren Namen, die ein Entwickler schreibt. Diese eine Entscheidung ist der Grund, warum ein Fabric Mod auf einer neuen Spielversion oft ohne Neukompilierung weiterlaufen kann.
Beim Start lädt Fabric die Intermediary-Zuordnung für diese Version und ordnet die verschleierten Klassen des Spiels den stabilen Namen zu, die der Mod erwartet. Mod und Spiel treffen sich in der Mitte bei einer Namensgruppe, die keiner von beiden roh ausliefert.
Intermediary vs. Entwickler-Zuordnungen
Entwickler lesen oder schreiben nicht class_1234. Sie arbeiten mit einer menschenlesbaren Zuordnung wie Yarn oder Mojmap, die Symbolen beschreibende Namen gibt. Zum Build-Zeitpunkt werden diese lesbaren Namen für die Verteilung auf Intermediary reduziert.
| Ebene | Beispielname | Wer nutzt es | Versionsübergreifend stabil |
|---|---|---|---|
| Verschleiert | a, field_5678 | Niemand manuell | Nein |
| Vermittler | class_1234 | Mitgelieferte Mod-Binärdateien | Ja |
| Yarn / Mojmap | MinecraftClient | Entwickler zur Build-Zeit | Lesbar, versionsverfolgt |
Die Aufteilung ermöglicht es Entwicklern, gegen freundliche Namen zu programmieren, während die tatsächlich ausgelieferte Version versionsstabil bleibt. Lesbare Mappings können ausgetauscht werden; der Vermittler ist die gemeinsame Basis, auf die sich alle einigen.
Wie es in den Lebenszyklus eines Mods passt
- Ein Entwickler schreibt Code gegen ein lesbares Mapping wie Yarn oder Mojmap.
- Der Build kompiliert diese Namen in Vermittler-Namen.
- Der Mod wird als Jar ausgeliefert, das auf Vermittler-Symbole verweist.
- Beim Start remapt Fabric das laufende Spiel von seinen verschleierten Namen in Vermittler-Namen, sodass Mod und Spiel übereinstimmen.
Dies ist der Grund, warum Mappings ein stiller, aber tragender Teil des Fabric Moddings sind: Sie sind der Vertrag, der sicherstellt, dass Mods nach jedem Update weiterhin auf den richtigen Code zeigen.
FAQ
Nein. Yarn ist eine verständliche Abbildung, gegen die Entwickler ihren Code schreiben. Intermediary ist die stabile, maschinengenerierte Schicht, gegen die kompilierte Mods tatsächlich ausgeliefert werden. Yarn-Namen werden während der Erstellung zu Intermediary kompiliert.
Sie werden generiert, nicht geschrieben. Namen wie class_1234 müssen nur eindeutig und dauerhaft sein, nicht schön. Die Lesbarkeit wird von Yarn oder Mojmap zusätzlich berücksichtigt.
Nein. Intermediary sorgt für stabile Namen, aber wenn Mojang eine Methode entfernt oder neu schreibt, ist der zugrunde liegende Code trotzdem verloren, unabhängig vom Namen. Es reduziert Brüche, eliminiert sie aber nicht.
Eigentlich nicht. Es läuft im Hintergrund innerhalb von Fabric. Du kommst nur als Entwickler oder beim Lesen eines Crash-Logs in Kontakt, in dem ein Intermediary-Symbol erwähnt wird.