Learn · concepts
Was ist ein Zwischenhändler? Minecraft-Karten erklärt
Fabric ist Fabric's stabile Namensschicht für verschleierten Minecraft-Code. Mods funktionieren weiterhin über Versionen hinweg, ohne zu brechen, wenn Felder umbenannt werden.
Was ist Intermediary?
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 vergibt jedem dieser Elemente einen festen Namen, der über Versionen hinweg gleich bleibt, sodass ein kompilierter Mod den Code, den er patcht, auch nach Updates des Spiels weiterhin findet.
Betrachten Sie es als einen Vertrag: Fabric verspricht, dass, wenn etwas im Spiel existiert, es über alle Versionen hinweg den gleichen Intermediary-Namen haben wird. Dieser Vertrag ermöglicht es einem als kompilierter Jar ausgelieferten Mod, auf neuen Versionen weiterhin zu funktionieren, ohne neu kompiliert werden zu müssen.
Was Intermediary tatsächlich ist
Intermediary ist eine Reihe von Zuordnungen: eine Nachschlagetabelle, die jedes verschleierte Minecraft-Symbol mit einem stabilen, maschinengenerierten Namen verknüpft. 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 jedem Build. Andernfalls würden die Namen sich von Release zu Release verschieben, weshalb ein Mod, der gegen die rohen verschleierten Namen kompiliert, 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 brauchen
Mods werden kompiliert und verteilt, wobei sie auf Intermediary-Namen ausgerichtet sind, nicht auf die lesbaren Namen, an denen ein Entwickler arbeitet. Diese eine Entscheidung ist der Grund, warum ein Fabric-Mod in vielen Fällen auf einem neuen Spielbuild weiterlaufen kann, ohne neu kompiliert werden zu müssen.
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 einem Namen-Set, das keiner von beiden 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 geben. Beim Build-Zeitpunkt werden diese lesbaren Namen auf Intermediary reduziert, um sie zu verteilen.
| Ebene | Beispielname | Wer verwendet ihn | Versionsübergreifend stabil |
|---|---|---|---|
| Verschleiert | a, field_5678 | Niemand manuell | Nein |
| Intermediary | class_1234, method_5678 | Ausgelieferte Mod-Binärdateien | Ja |
| Yarn / Mojmap | MinecraftClient, isPlayerSpawned() | Entwickler zur Build-Zeit | Lesbar, versionsverfolgt |
Diese Aufteilung ermöglicht es Entwicklern, mit freundlichen Namen zu programmieren, während das, was tatsächlich ausgeliefert wird, versionsstabil bleibt. Lesbare Zuordnungen können ausgetauscht werden; Intermediary ist der gemeinsame Nenner, auf den sich alle einigen.
Wie es in den Lebenszyklus eines Mods passt
- Ein Entwickler schreibt Code basierend auf einer lesbaren Zuordnung wie Yarn oder Mojmap.
- Der Build kompiliert diese Namen in Zwischennamen.
- Das Mod wird als Jar ausgeliefert, das auf Zwischensymbole verweist.
- Beim Start remapt Fabric das laufende Spiel von seinen verschleierten Namen in Zwischennamen, sodass Mod und Spiel nach jedem Update übereinstimmen.
Dies ist der Grund, warum Zuordnungen 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.
Häufig gestellte Fragen
Nein. Yarn ist eine verständliche Abbildung des Codes von Entwicklern. Intermediary ist die stabile, maschinengenerierte Schicht, gegen die tatsächlich versendete Mods kompiliert werden. Yarn-Namen werden während der Erstellung auf Intermediary abgebildet.
Sie werden generiert, nicht geschrieben. Namen wie class_1234 müssen nur einzigartig und dauerhaft sein, nicht schön. Die Lesbarkeit wird von Yarn oder Mojmap zusätzlich berücksichtigt.
Nein. Der Vermittler behält die Namen stabil, aber wenn Mojang eine Methode entfernt oder neu schreibt, ist der zugrunde liegende Code unabhängig vom Namen verschwunden. Es reduziert Brüche, beseitigt sie aber nicht.
Eigentlich nicht. Es läuft im Hintergrund innerhalb von Fabric. Als Entwickler oder beim Lesen eines Crash-Logs, das ein Zwischensymbol erwähnt, wirst du damit in Berührung kommen.