JAR to po prostu plik ZIP zawierający różne pliki klas i inne użyte metadane - jest to całkowicie znormalizowany format.
Pliki ZIP można wyodrębnić, a pliki klas można edytować w razie potrzeby do modyfikacji. Zmodyfikowane pliki są następnie dodawane z powrotem do archiwum, co powoduje, że serwer używa zmodyfikowanych plików zamiast oryginalnych.
Technicznie rzecz biorąc, mody Minecrafta są tak naprawdę „zhakowanymi” wersjami oryginalnego kodu: rzeczywiste pliki klas binarnych muszą zostać zmodyfikowane, aby gra wiedziała o nowych rzeczach; nie ma jeszcze oficjalnego wsparcia dla modów (chociaż Notch oświadczył, że będą nad tym pracować podczas wersji beta).
Oczywiście nie jest to zbyt dobry sposób na robienie rzeczy, jeśli aktywnie projektujesz mody. Zamiast tego zaprojektowałbyś jakąś architekturę wtyczek, która pozwala uruchamiać niestandardowy kod w razie potrzeby. Dokładnie to, jak byś to zrobił, zależy od tego, co chcesz, aby twoje mody były w stanie zrobić - np. Jeśli bezpieczeństwo budzi obawy, prawdopodobnie chcesz zaprojektować interfejs modowy, aby używał jakiegoś skryptu, abyś mógł ograniczyć mod do robienia wszelkiego rodzaju rzeczy na komputerze użytkownika.
Mody dla jednego gracza to zhakowane wersje oryginalnego kodu. Mody dla wielu graczy są teraz inne. Prawie wszyscy używają otoki serwera hey0, która łączy w pliku minecraft_server.jar (lub jakikolwiek inny termin znajduje się w środowisku Java), ale definiuje własne klasy funkcji, przeciąża niektóre podstawowe funkcje i uruchamia własną funkcję main ()
Hey0 zapewnia mod API . Widzieć
źródło
Dla twojej informacji, Mojang wyda „Mod API” w najbliższej przyszłości (w fazie beta, a więc przed oficjalnym wydaniem, które nastąpi około listopada 2011 r.).
W rzeczywistości będzie to pełny kod źródłowy, jak wspomniano na blogu Notch
http://notch.tumblr.com/post/4955141617/the-plan-for-mods
ale na razie musisz „zdekompilować” słoiki, aby zobaczyć częściowo zaciemniony kod i przekompilować go do późniejszego użycia / debugowania.
Aby to zrobić, gorąco polecam Minecraft Coder's Pack http://mcp.ocean-labs.de/index.php/MCP_Releases
na forach jest również kilka samouczków dotyczących modowania, takich jak ten: http://www.minecraftforum.net/topic/96862-creating-mods-modding-tutorials-21511/
źródło