Die Struktur des Sponge Projekts

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 hier gehostet?
SpongeAPI Die SpongeAPI Entwicklung der API
SpongeForge Eine Implementierung der SpongeAPI auf Basis von Minecraft Forge Entwicklung der Teile von SpongeForge, die auf Forge basieren
SpongeVanilla Eine Implementierung der SpongeAPI auf Basis von Vanilla Minecraft Entwicklung der Teile von SpongeVanilla, die auf dem Vanilla Server basieren
SpongeCommon Der von SpongeForge und SpongeVanilla gemeinsam genutzte Code Entwicklung des geteilten Codes
Mixin 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
SpongeDocs Die offizielle SpongeProjekt Dokumentation Erweitern und Schreiben der SpongeDocs
SpongeHome Die Website für das SpongeProject Entwicklung unserer Website
Ore Plugin Hosting Lösung Entwicklung unserer Plugin Hosting Website
SpongeAuth Das Authentifizierungsportal und SSO für unsere Webseiten Entwicklung an unserem Authentifizierungsportal und SSO-Lösung

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 is the Sponge project’s website. It’s written in Golang, using the go-macaron library. It uses SCSS as its CSS preprocessor.

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 typisches 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:

Repo Overview