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.

TRtrolPublished 4 min read

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.

EbeneBeispielnameWer verwendet ihnVersionsübergreifend stabil
Verschleierta, field_5678Niemand manuellNein
Intermediaryclass_1234, method_5678Ausgelieferte Mod-BinärdateienJa
Yarn / MojmapMinecraftClient, isPlayerSpawned()Entwickler zur Build-ZeitLesbar, 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

  1. Ein Entwickler schreibt Code basierend auf einer lesbaren Zuordnung wie Yarn oder Mojmap.
  2. Der Build kompiliert diese Namen in Zwischennamen.
  3. Das Mod wird als Jar ausgeliefert, das auf Zwischensymbole verweist.
  4. 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