Eine JAR ist einfach eine ZIP-Datei, die die verschiedenen verwendeten Klassendateien und anderen Metadaten enthält - es ist ein vollständig standardisiertes Format.
ZIP-Dateien können extrahiert und die Klassendateien nach Bedarf für die Änderung bearbeitet werden. Die geänderten Dateien werden dann wieder in das Archiv eingefügt, wodurch der Server die geänderten Dateien anstelle der Originaldateien verwendet.
Technisch gesehen sind Minecraft-Mods wirklich "gehackte" Versionen des Originalcodes: Die eigentlichen Binärklassendateien müssen geändert werden, um das Spiel über die neuen Dinge zu informieren. Es gibt noch keine offizielle Mod-Unterstützung (obwohl Notch erklärt hat, dass sie während der Beta daran arbeiten werden).
Natürlich ist das keine sehr gute Art, Dinge zu tun, wenn man aktiv für Mods entwirft. Stattdessen würden Sie eine Art Plugin-Architektur entwerfen, mit der gegebenenfalls benutzerdefinierter Code ausgeführt werden kann. Wie Sie genau vorgehen würden, hängt davon ab, was Ihre Mods können sollen. Wenn beispielsweise die Sicherheit ein Problem darstellt, möchten Sie die Mod-Oberfläche wahrscheinlich so gestalten, dass sie eine Art Skripterstellung verwendet, damit Sie die Mods daran hindern können alle möglichen Dinge auf den Computer des Benutzers.
Einzelspieler-Mods sind gehackte Versionen des Originalcodes. Multiplayer-Mods sind momentan anders. Sie alle verwenden fast den Server-Wrapper von hey0, der in der Datei minecraft_server.jar (oder wie auch immer der Begriff in Java land lautet) verknüpft, aber eigene Funktionsklassen definiert, einige der Kernfunktionen überlastet und eine eigene main () ausführt.
Hey0 bietet eine Mod- API . Sehen
quelle
Zu Ihrer Information, Mojang wird in naher Zukunft eine "Mod API" veröffentlichen (während der Beta, also vor der offiziellen Veröffentlichung, die im November 2011 sein wird).
Tatsächlich wird es der vollständige Quellcode sein, wie in Notchs Blog erwähnt
http://notch.tumblr.com/post/4955141617/the-plan-for-mods
Im Moment müssen Sie die Jars jedoch "dekompilieren", um einen teilweise verschleierten Code zu sehen und ihn für die spätere Verwendung / das Debuggen neu zu kompilieren.
Zu diesem Zweck empfehle ich das Minecraft Coder's Pack http://mcp.ocean-labs.de/index.php/MCP_Releases
Es gibt auch ein paar Modding-Tutorials in den Foren, wie dieses: http://www.minecraftforum.net/topic/96862-creating-mods-modding-tutorials-21511/
quelle