Die Struktur des Sponge Projekts
Warnung
Dieses Dokument bezieht sich auf eine veralte SpongeAPI-Version und wird nicht länger aktiv gepflegt. Während die Code-Beispiele für diese API-Version immer noch funktionieren, die Richtlinien und einige Links haben sich möglicherweise geändert. Bitte gehe stattdessen zur aktuellen Version der Dokumentation.
Das Sponge Projekt besteht aus verschiedenen Teilprojekten, die in verschiedenen Repositories auf GitHub gehostet werden. Ein kurzer Überblick bevor wir ins Detail gehen:
Projekt |
Beschreibung |
Was wird im Repository getan? |
---|---|---|
Die SpongeAPI |
Entwicklung der API |
|
Eine Implementierung der SpongeAPI auf Basis von Minecraft Forge |
Entwicklung der Teile von SpongeForge, die auf Forge basieren |
|
Eine Implementierung der SpongeAPI auf Basis von Vanilla Minecraft |
Entwicklung der Teile von SpongeVanilla, die auf dem Vanilla Server basieren |
|
Der von SpongeForge und SpongeVanilla gemeinsam genutzte Code |
Entwicklung des geteilten Codes |
|
Das Werkzeug, das wir nutzen um unsere Implementierungen mit der darunter liegenden Struktur zu verknüpfen |
Entwicklung unserer Lösung um SpongeForge in den Minecraft Server einzubinden |
|
Die offizielle SpongeProjekt Dokumentation |
Erweitern und Schreiben der SpongeDocs |
|
Die Website für das SpongeProject |
Entwicklung unserer Website |
|
Plugin Hosting Lösung |
Entwicklung unserer Plugin Hosting Website |
SpongeCommon, SpongeForge und SpongeVanilla
SpongeCommon ist die Basis unserer Implementierungen. Es enthält allen Code, der von SpongeForge und SpongeVanilla geteilt wird. Das SpongeForge und SpongeVanilla Repository dagegen enthalten jeweils nur den Code, der nicht geteilt werden kann, da Forge einige spezielle Anpassungen erfordert, die nicht auf Vanilla Minecraft funktionieren und umgekehrt.
Wenn man auf SpongeForge (die Implementierung) verweist, so ist immer alles gemeint, das in den SpongeCommon und SpongeForge Repositories enthalten ist. Das Gleiche trifft auch auch SpongeVanilla und SpongeCommon zu. Das ist der Grund weshalb das Kompilieren von SpongeForge oder SpongeVanilla ohne SpongeCommen mit einzubeziehen nicht funktioniert.
SpongeHome
SpongeHome ist die Webseite des Sponge Projektes. Sie wurde in Golang mit Hilfe der go-macaron Programmbibliothek geschrieben. Zur CSS Vorverarbeitung wird SCSS genutzt.
Ore
Ore ist unsere ganz eigene Plugin Hosting-Lösung. Sie ist in Scala, basierend auf dem Play Framework, geschrieben und ist natürlich Open-Source!
Wie alles miteinander verbunden ist
Dieses Bild zeigt die verschiedenen Teile der Sponge Implementierungen und wie sie zusammenhängen. Auf der linken Seite ist ein typischer SpongeForge Server zu sehen, der einige SpongeAPI Plugins, einen Forge-Mod und einen Hybrid (der Forge als Mod und Sponge als Plugin nutzt) enthält. Auf der rechten Seite ist ein typischer SpongeVanilla Server zu sehen. Es fällt auf, das SpongeVanilla weder Forge- Mods noch den Hybrid unterstützt, da SpongeVanilla keine Forge Funktionalität beinhaltet: