====== Lesen des Minecraft Sourcecodes ====== Lesen des Minecraft Sourcecodes ist eine wichtige Eigenschaft beim Modden. Das ist hauptsächlich, weil * die meisten Sachen in Minecraft nicht dokumentiert sind * Dokumentationen/Tutorials veralten ziemlich schnell Um den Minecraft Sourcecodes zu lesen, musst du diese erst generieren. Siehe den Abschnitt "Generating Minecraft Sources" in [[de:tutorial:setup|Einrichtung einer Mod-Entwicklungsumgebung]]. ===== Suchen nach einer Minecraft-Klasse ==== Um eine Minecraft-Klasse zu suchen, folge diesen Schritten: ==== IntelliJ IDEA ==== - Öffne das Such-Panel mit ''Ctrl + N'' - Stelle den Suchbereich auf ''Project and Libraries'' oder weiter. - Gib den Kassennamen in die Suchzeile ein ==== Visual Studio Code ==== - Öffne das Such-Panel mit ''Ctrl + P'' - Suche den Klassennamen mit dem Prefix ''#'' In Visual Studio Code kannst du auch ''Ctrl + T'' nutzen, um die Klassensuche direkt zu öffnen. ===== Das Finden der gesuchten Klasse ==== Das Finden des Codes den du suchst, ist eine herausfordernde Aufgabe. Hier paar einfache Tipps. * Nutze die Möglichkeiten der IDE, den relevanten Code, wie ''Call hierarchy'', ''Method hierarchy'' oder ''Type hierarchy''. * Schau in Open-Source-Mods nach, die ähnlich wie die ist, die du machen willst. * Wenn du neuen Inhalt hinzufügen möchtest, ist die Wahrscheinlichkeit groß, dass du auf die Register, definiert in ''net.minecraft.util.registry.Registry'', zugreifen musst. * Merk dir, dass alles immer in der Main-Klasse (''net.minecraft.client.main.Main'' für den Client, ''net.minecraft.server.Main'' für den Server). ---- ===== Lesen des Bytecodes ===== Lesen des Bytecodes ist gelegentlich nötig, da * Mixins im Bytecode arbeiten und nicht im Sourcecode. Verstehen des Bytecodes ist essentiell, wenn du komplexe Mixins schreibst. * Decompiler (FernFlower) sind nicht perfekt. Es produziert manchmal ungültigen Java-Code wie ''int i = true;''. Wenn du nicht mit Java-Bytecode vertraut bist, lese [[https://docs.oracle.com/javase/specs/jvms/se17/html/jvms-6.html|die JVM Spezifikationen]]. Um den Bytecode zu sehen, folge diesen Schritten. ==== IntelliJ IDEA ==== - Öffne die Klasse, die du in Bytecode sehen möchtest - Wähle ''View'' aus dem Hauptmenü - Wähle ''Show Bytecode'' ==== Andere Programme ==== Wenn deine IDE Bytecode nicht anzeigen kann, kannst du Bytecode-Viewer, wie [[https://github.com/Konloch/bytecode-viewer]]. ---- ===== FAQ ===== **Wo ist der generierten Sourcecode?** Es befindet sich entweder im Gradle-Cache des Benutzers (''~/.gradle/caches/fabric-loom'') oder im Gradle-Cache des Projekts (''./.gradle/loom-cache''). Du kannst die Source-JAR-Datei außerhalb Ihrer IDE verwenden.