Dein Plugin Veröffentlichen

Sponge’s offizielles Plugin und Mod Repository, Ore, ist ein freies und Open-Source-Projekt, auf welchem jeder seine Sponge Plugins und Forge Mods veröffentlichen kann.

Dein Plugin Packen

Ore verlangt von allen Projekten, dass diese eine mcmod.info Datei in der obersten Ebene der JAR-Datei besitzen. Diese Datei wird dafür genutzt, um automatisch einige wichtige Informationen über dein Projekt zu erfassen und den Upload Vorgang zu vereinfachen. Sollte diese Datei in deinem Plugin fehlen wird Ore dein Plugin ablehnen. Um das Erstellen zu vereinfachen besitzt die Sponge API einen Annotations-Prozessor, der diese Datei automatisch, beim Kompilieren mit Hilfe der @Plugin Annotation, die du vermutlich in der Hauptklasse deines Plugins erstellt hast, erstellt.

Bemerkung

Mehr Informationen zum Erstellen und Kompilieren deines ersten Plugins kannst du hier finden: Hauptklasse des Plugins

Als Referenz ist hier eine Beispiel mcmod.info Datei:

[
    {
        "modid": "my-plugin",
        "name": "MyPlugin",
        "version": "1.0.0",
        "description": "My first plugin!",
        "url": "https://spongepowered.org",
        "authorList": [
            "windy",
            "Zidane",
            "gabizou"
        ],
        "requiredMods": [
            "[email protected]",
            "[email protected]",
            "[email protected]"
        ],
        "dependencies": [
            "[email protected]",
            "[email protected]",
            "[email protected]"
        ]
    }
]

Ein Ore Projekt muss mindestens die Felder modid, name und version ausgefüllt haben.

Signieren deines Plugins

Aus Sicherheitsbedenken verlangt Ore, dass jede Plugin Datei (ZIP oder JAR) mit einer Pretty Good Privacy (PGP) Signatur in einer eigenen Datei versehen ist. Dafür muss ein öffentlicher Schlüssel mit der E-Mail-Adresse assoziiert sein, die du verwendet hast, um deinen Sponge Account zu erstellen. Diese digitale Signatur stellt sicher, dass die hochgeladene Datei auch tatsächlich von dem Besitzer des Accounts hochgeladen wurde.

Bemerkung

Eine digitale Signatur zertifiziert ein Dokument, sodass jede Modifizierung der Datei dafür sorgt, dass die Verifizierung der Signatur fehlschlägt. Eine digitale Signatur hat also denselben Sinn wie eine handschriftliche Unterschrift mit dem zusätzlichen Vorteil, dass diese nicht manipuliert werden kann. Die GnuPG Quellcode Verbreitung ist, zum Beispiel, so signiert, dass der Nutzer verifizieren kann, dass der Quellcode nach dem Packen nicht mehr verändert wurde.

Um ein Plugin zu signieren, muss erst ein PGP kompatibles Programm, wie zum Beispiel GnuPG (GPG), installiert werden. GPG ist für alle größeren Plattformen verfügbar und kann hier heruntergeladen werden.

Nachdem GPG installiert ist und ein erster öffentlichen Schlüssel erstellt wurde, muss dieser zu dem Account hinzugefügt werden. Dies macht man, indem man auf das Profil geht und auf das Schlüsselsymbol neben dem Avatar klickt.

PGP public key 1

Daraufhin wird man aufgefordert, den Schlüssel in eine Textbox einzufügen. Hierbei muss darauf geachtet werden, dass der gesamte Schlüssel eingefügt wird, da die Überprüfung sonst fehlschlägt.

PGP public key 2

Zum Schluss muss man dann noch die fertige Plugin-Datei mit dem privaten Schlüssel, dessen öffentlicher Schlüssels hochgeladen wurde. signieren. Es reicht, die Datei zu signieren, die hochgeladen wird. Wenn man also eine ZIP Datei, mit einer darin vorhandenen JAR Datei, hochladen möchte, braucht (und sollte) nur die ZIP Datei signiert werden. Der einfachste Weg, eine Datei zu signieren, ist der folgende GPG Befehl:

gpg --output myplugin-1.0.0.jar.sig --detach-sig myplugin-1.0.0.jar

Bemerkung

Wenn du einen Build-Manager wie Gradle oder Maven verwendest, gibt es Plugins, die zum Build-Skript hinzugefügt werden können und das Signieren automatisieren können. Mehr Informationen dazu gibt es in der Gradle Dokumentation oder Maven Dokumentation.

Dein Plugin Hochladen

Sobald die JAR Datei des Plugins mit einer mcmod.info Datei, in der obersten Ebene, gepackt ist und die Datei auch mit dem privaten PGP-Schlüssel signiert ist, ist das Plugin fertig fürs Hochladen! Um ein Projekt auf Ore zu erstellen, wird ein aktiver Sponge Account benötigt. Um einen zu erstellen, reicht es auf „Sign up“ (Registieren) in der oberen rechten Ecke zu klicken und den dann folgenden Anweisungen zu folgen. Wenn bereits ein Account existiert reicht es, auf „Log in“ zu klicken und sich anzumelden.

Sobald man eingeloggt ist, kann man in dem Drop-Down-Menü neben dem Avatar „New Project“ auswählen oder man drückt einfach auf die „C“ Taste der Tastatur.

Während des Upload-Vorgangs wird man zuerst aufgefordert, die Plugin-Datei hochzuladen und danach die Signatur-Datei.

Ein Projekt auf Ore Einrichten

Nach dem Hochladen des Plugins, werden einem einige Einstellungsmöglichkeiten angezeigt, um das Projekt so zu konfigurieren wie man es gerne hätte. Diese Einstellungen lassen sich später auch alle noch auf der Einstellungsseite ändern. Anschließend hat man die Möglichkeit noch weitere Sponge Nutzer einzuladen, ein Teil des Projektes zu sein. Eingeladen werden können alle Nutzer, die sich im Forum registriert haben, auch wenn diese sich noch nie auf Ore angemeldet haben. Die eingeladenen Nutzer werden dann benachrichtigt und können die Einladung annehmen oder ablehnen. Projektmitglieder sind erst dann öffentlich sichtbar, wenn die Einladung akzeptiert wurde.

Aktuell gibt es drei Gruppen denen man Projektmitglieder zuordnen kann: Developer, Editor und Support. Der Nutzer, der das Projekt erstellt hat, bekommt die Gruppe Owner, welche uneingeschränkten Zugriff auf das Projekt hat. Hier ist noch eine kurze Auflistung der Rechte, die die einzelnen Gruppen in dem Projekt haben.

Owner (Eigentümer)

Es gibt maximal einen Owner zu einem Projekt. Diese Gruppe ist (aktuell) nicht übertragbar und die einzige, die anderen Mitgliedern Gruppen zuweisen kann.

Developers (Entwickler)

Entwickler können Veröffentlichungs-Kanäle und Versionen erstellen und bearbeiten und auch die Seiten bearbeiten.

Editor

Redakteure können die Seiten bearbeiten.

Support (Helfer)

Supporter können nichts machen, sprich diese Gruppe ist nur dafür da, um zu zeigen, dass die Person Teil des Projekts ist.