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 requires any projects to be packaged with a mcmod.info descriptor file in the top-level of your JAR file. This file is used to automatically infer some important details about your project to make the upload process easier. Ore will reject your plugin if this file is missing from the JAR. Luckily, SpongeAPI has a built-in annotation processor that creates this file for you automatically, on compile, using the @Plugin annotation that you have likely already created in your plugin’s main class.

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": [
            "bookotd@1.0.0",
            "ore-test@1.0.0",
            "worldedit@1.0.0"
        ],
        "dependencies": [
            "bookotd@1.0.0",
            "ore-test@1.0.0",
            "worldedit@1.0.0"
        ]
    }
]

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

You will then be prompted to enter your key into a text box. You must be sure to enter the key in its entirety or signature validation will fail.

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.

Das Projekt mit Seiten dokumentieren

To document your plugin Ore offers the creation of pages. By default, you get a ‚Home‘ page when you create your new Project. To add new pages, you can click on the ‚+‘ icon in the Pages bar on the right of the screen; doing so will open a pop-up where you can choose a name and the parent page (adding a page on the Home page is not possible). If you choose the ‚<None>‘ option the page will become a root page where you can later add child pages on. If you choose to add it to another page the page will only show when the parent page is expanded. To document your pages, you can use CommonMark.

Seiten verlinken

Wenn es folgende Struktur in den Seiten gibt:

  • Home
  • Befehle
    • User
    • Admin
  • Setup
    • Config
    • Permissions

Und ein Link von der Home Seite zur Config Page eingerichtet werden soll, kann WikiLinks verwendet werden. Um WikiLink hinzuzufügen, wird der Link im Format [[Link]] hinzugefügt, so dass, in unserem Beispiel, [[Config]] hinzugefügt werden würde, was in einen Link umgewandelt wird, der funktioniert.

Bemerkung

Der Link kann auch einen optionalen Titel enthalten, der mit ‚|‘ vor den ursprünglichen Link gesetzt wird, sodass [[Title|Link]] ein Link mit Titel wird

Bemerkung

WikiLinks sind nur von Ore unterstützt, wenn sie auf der Homepage benutzt werden, werden sie nicht korrekt im Forum dargestellt. Trotzdem empfehlen wir die Benutzung statt normaler Links um auch die zukünftige Funktionalität des Forums zu gewährleisten.

Projekt States

When creating a new project, a banner will appear telling you your project is in a ‚new‘ state. The new state is intended to indicated to users and admins you are still working on the setup of your project. If you have finished documenting your plugin to make it comply with the guidelines, click the ‚publish‘ button to complete the process. However, if you don’t publish it yourself then the project will be published automatically 24 hours after its creation.

Needs Changes

Ore-Teammitglieder können dein Projekt verstecken und Änderungen fordern; die Änderungsanforderungen werden im Banner aufgelistet. Dieser Zustand wird dein Projekt vor der Öffentlichkeit verstecken. Wenn du damit fertig bist, kannst du dein Projekt zur erneuten Begutachtung einsenden.

Needs Approval

In this state your project is still hidden from the public while waiting for a staff member to review and validate the changes that were requested. Please be patient, the staff members might be busy with other tasks. If the project gets approved it will automatically become visible again. Please make sure to actually fix the points that require changes.