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?

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

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:

Repo Overview