Zum Hauptinhalt springen

Nightbreak-Einrichtung und Inhaltsverwaltung

Diese Seite ist die gemeinsame Einrichtungsanleitung für die von Nightbreak verwalteten Plugins.

Sie gilt direkt für:

  • EliteMobs
  • BetterStructures
  • FreeMinecraftModels
  • EternalTD
  • ResurrectionChest
  • WorldCannon

Diese Plugins teilen nun denselben Gesamtlebenszyklus:

  1. Installiere das Plugin und alle zwingend erforderlichen Abhängigkeiten.
  2. Starte den Server einmal, damit Dateien und Menüs generiert werden.
  3. Führe den Ersteinrichtungsbefehl des Plugins aus, falls vorhanden.
  4. Verknüpfe den Server über /nightbreaklogin mit deinem Nightbreak-Konto und genehmige ihn dann unter dem Link, den der Befehl ausgibt.
  5. Nutze das Plugin-Setup-Menü, um Inhalte zu durchsuchen, zu installieren, zu aktivieren, zu deaktivieren und zu aktualisieren.
  6. Nutze die Massendownload-/Aktualisierungsbefehle des Plugins, wenn du einen schnelleren Erststart möchtest.

Was MagmaCore tatsächlich teilt​

MagmaCore ist die gemeinsame Schicht hinter dem von Nightbreak verwalteten Ablauf. Es bietet:

  • den gemeinsamen Befehl /nightbreaklogin, der den Server über einen Browser verknüpft oder einen von dir eingefügten Token speichert (Berechtigung nightbreak.login, standardmäßig OP)
  • den gemeinsamen Befehl /nightbreaklogout zum Trennen des Servers von seinem Nightbreak-Konto (Berechtigung nightbreak.login, standardmäßig OP)
  • den gemeinsamen Befehl /logify zum Hochladen des aktuellen Server-Logs zu mclo.gs (Berechtigung logify.*, standardmäßig OP). Er lädt logs/latest.log hoch oder, falls diese fehlt, die neueste .log-Datei, maskiert vorher die Ziffern von IPv4-Adressen und Ports und antwortet mit einem anklickbaren Link
  • den gemeinsamen Befehl /nightbreak plugins zum Durchsuchen des Nightbreak-Plugin-Katalogs (Berechtigung nightbreak.plugins, standardmäßig OP)
  • die gemeinsame Token-Speicherung in plugins/MagmaCore/nightbreak.yml
  • gemeinsame Setup-Menü-Grundlagen, die von Plugin-Setup-Menüs verwendet werden
  • gemeinsame Nightbreak-Zugriffs-, Versions- und Download-Prüfungen
  • gemeinsame Massendownload-Logik, die Dateien in den imports-Ordner des besitzenden Plugins herunterlädt
  • den gemeinsamen Changelog-Posteingang, der Admins im Spiel mitteilt, wenn ein Plugin oder ein installiertes Inhaltspaket ungelesene Release Notes hat (siehe Nightbreak-Changelog-Benachrichtigungen)
  • Plugin-Updates ohne Neustart über applypluginupdate und die Einstellung nightbreak.applyPluginUpdatesWithoutRestart (siehe unten)
  • den Standard-Unterbefehlssatz, den jedes von Nightbreak verwaltete Plugin unter seinem eigenen Stammbefehl registriert (siehe unten)

/nightbreaklogin, /nightbreaklogout, /logify und /nightbreak werden pro Server einmalig von dem von Nightbreak verwalteten Plugin registriert, das MagmaCore zuerst lädt, sodass sie unabhängig davon verfügbar sind, welches Plugin sie zur Laufzeit „besitzt".

Gemeinsame Standard-Unterbefehle​

Die untenstehenden Unterbefehle werden nicht von jedem Plugin selbst geschrieben. MagmaCore registriert dieselben Implementierungen unter dem jeweils vom Plugin deklarierten Stammbefehl (/em, /bs, /fmm, /etd, …), weshalb sie sich überall identisch verhalten.

UnterbefehlWas er tutBerechtigung
setupÖffnet das Setup-Menü des Plugins. Nur für Spieler.Setup-Berechtigung des Plugins
initializeÖffnet das Ersteinrichtungsmenü für Spieler, wenn das Plugin diesen Ablauf registriert. Preset-Modi sind keine Voraussetzung; FreeMinecraftModels registriert ihn ebenfalls. Sieh auf der Befehlsseite des jeweiligen Plugins nach.Initialize-Berechtigung des Plugins
recommendedpluginsZeigt empfohlene Begleit-Plugins (Menü im Spiel, Chat-Liste von der Konsole).Setup-Berechtigung des Plugins
downloadpluginupdateLädt nur eine Plugin-Update-Jar herunter. Keine Inhalte.Admin-Berechtigung des Plugins
applypluginupdateWendet ein heruntergeladenes Plugin-Update an, ohne den Server neu zu starten. Siehe Updates ohne Neustart anwenden.Admin-Berechtigung des Plugins
downloadallLädt das Plugin-Update und anschließend alle verfügbaren Inhalte herunter.Admin-Berechtigung des Plugins
downloadallcontentLädt alle verfügbaren Inhalte herunter, kein Plugin-Update. Wird nur von Plugins registriert, die Inhaltspakete ausliefern.Setup-Berechtigung des Plugins
updatecontent (Alias updateallcontent)Lädt nur Updates für bereits veraltete Inhalte herunter. Wird nur von Plugins registriert, die Inhaltspakete ausliefern.Setup-Berechtigung des Plugins
forcereinstallcontent <package|all>Lädt Inhalte über den normalen authentifizierten Import- und Reload-Pfad erneut herunter, selbst wenn die installierte Version bereits aktuell ist. all umfasst jedes Paket, das heruntergeladen, installiert oder veraltet ist; gib den Paket-Slug direkt an, wenn dessen Dateien vollständig fehlen. Wird nur von Plugins registriert, die Inhaltspakete ausliefern.Admin-Berechtigung des Plugins

Der genaue Berechtigungsknoten hinter jeder Spalte wird vom Plugin gewählt, sieh also auf der Seite des jeweiligen Plugins nach den Knotennamen. initialize ist ein Ersteinrichtungsassistent — er ersetzt nicht das Setup-Menü oder die Inhaltsverwaltungsbefehle.

Da downloadall mit dem Plugin-Update beginnt, hält es vor dem Inhaltsschritt an, wenn das Konto keinen Token hat oder die Token-Authentifizierung fehlgeschlagen ist. Korrigiere zuerst den Token und führe dann den Befehl erneut aus.

MagmaCore hat auch ein separates Plugin-Start-Initialisierungssystem, aber das ist nicht dasselbe wie die hier dokumentierten spielerorientierten initialize-Befehle.

Automatische Updates​

Jedes von Nightbreak verwaltete Plugin schreibt zwei gemeinsame Schlüssel in seine eigene config.yml:

nightbreak:
autoDownloadPluginUpdates: false
applyPluginUpdatesWithoutRestart: never

Steht autoDownloadPluginUpdates auf true, lädt dieses Plugin wenige Minuten nach dem Start automatisch herunter:

  • eine verfügbare Plugin-Update-Jar und
  • Update-Dateien für alle veralteten Inhaltspakete, die es verwaltet.

Automatisch heruntergeladene Inhalts-Updates werden nach einem Server-Neustart verwendet. Ein heruntergeladenes Plugin-Update wartet ebenfalls auf einen Neustart, sofern applyPluginUpdatesWithoutRestart es nicht schon früher anwendet (siehe Updates ohne Neustart anwenden). Beide Einstellungen sind anfangs deaktiviert, sodass du ab Werk bei der In-Game-Update-Schaltfläche bleibst. Die Schaltfläche Automatic Updates in der Werkzeugleiste des Setup-Menüs schaltet autoDownloadPluginUpdates ein und aus. Diese Schaltfläche und der Eintrag Plugin Update geben an, wann ein heruntergeladenes Plugin-Update unter dem aktuellen Wert von applyPluginUpdatesWithoutRestart angewendet wird. Bei ResourcePackManager steht dort, dass ein Neustart nötig ist.

ResourcePackManager schreibt nur autoDownloadPluginUpdates, da seine Plugin-Updates immer einen Neustart benötigen.

Plugin-Jar-Downloads im Spiel, ob automatisch oder über einen Befehl oder ein Menü gestartet, erfordern einen gültigen Konto-Token und eine aktive Supporter-Mitgliedschaft bei Patreon auf dem verknüpften Nightbreak-Konto. Andernfalls wird der Download verweigert und das Plugin nennt dir den Grund, mit einem Link zur öffentlichen Download-Seite. Bevor eine heruntergeladene Jar ihren endgültigen Namen erhält, im update-Ordner oder bei einer Neuinstallation im plugins-Ordner, prüft MagmaCore, ob sie zum erwarteten Plugin-Namen und zur erwarteten Version passt. Liefert Nightbreak eine SHA-256-Prüfsumme, wird auch diese geprüft. Schlägt eine Prüfung fehl, wird der temporäre Download verworfen.

Unabhängig von der Auto-Download-Einstellung prüft jedes Plugin etwa einmal pro Stunde unauffällig auf eine neuere Version, damit das Setup-Menü einen korrekten Update-Status anzeigen kann. Diese Prüfung lädt von sich aus niemals etwas herunter. Manche Plugins protokollieren außerdem die neueste öffentliche Version in der Konsole, wenn sich dieses Ergebnis ändert, und teilen Operatoren beim Beitritt mit einem Download-Link mit, dass ihre Version veraltet ist.

Updates ohne Neustart anwenden​

Ein heruntergeladenes Plugin-Update wartet im update-Ordner des Servers. Führe /<root> applypluginupdate aus, zum Beispiel /em applypluginupdate, um es in den laufenden Server einzuspielen. Der Befehl verwendet die Admin-Berechtigung des Plugins und funktioniert auch über die Konsole.

Der Austausch deaktiviert das Plugin und jedes aktivierte MagmaGuy-Plugin, das per depend oder softdepend davon abhängt, ersetzt die Jar und lädt und aktiviert sie anschließend wieder. Der Chat listet die Plugins auf, die mit neu geladen werden. Lässt sich die neue Jar nicht aktivieren, wird die vorherige Jar wieder geladen und das Update bleibt für den nächsten Neustart im update-Ordner. Dort wartende Updates für die anderen neu geladenen Plugins bleiben ebenfalls für den nächsten Neustart liegen; nur das genannte Plugin wechselt die Version.

Der Befehl verweigert die Ausführung mit einer Meldung, wenn:

  • kein heruntergeladenes Update wartet oder die wartende Jar ungültig oder nicht neuer als die laufende Version ist
  • ein Plugin eines anderen Autors per depend oder softdepend davon abhängt. Starte den Server stattdessen neu
  • bereits ein anderer Plugin-Austausch läuft
  • das Plugin immer einen Neustart benötigt. ResourcePackManager verweigert, weil seine Geyser-Erweiterung nur beim Start von Geyser geladen wird

Verwende diesen Befehl statt eines Plugin-Reloaders von Drittanbietern. Bis zum Austausch oder zu einem Neustart läuft auf dem Server weiterhin die alte Jar.

nightbreak.applyPluginUpdatesWithoutRestart legt fest, was direkt nach dem Download eines Plugin-Updates passiert, unabhängig davon, ob der Download über downloadpluginupdate, downloadall, das Setup-Menü oder einen automatischen Download kam:

WertVerhalten
neverStandard. Das Update wartet auf den nächsten Neustart. Spieler mit der Admin- oder Wildcard-Berechtigung des Plugins, die online sind, erhalten einen Titel und einen Chat-Hinweis, dass ein Neustart erforderlich ist. Der Hinweis nennt /<root> applypluginupdate nur, wenn das Plugin diesen Befehl registriert und Updates ohne Neustart erlaubt.
when-emptyWendet das Update sofort an, wenn keine Spieler online sind. Andernfalls prüft das Plugin alle 30 Sekunden und wendet es an, sobald der Server leer ist.
immediatelyWendet das Update an, sobald der Download abgeschlossen ist.

Jeder andere Wert verhält sich wie never. Trifft when-empty oder immediately auf einen der oben genannten Ablehnungsgründe, wartet das Update auf den nächsten Neustart. Ein Austausch lädt das Plugin neu, daher enden laufende Bosse, Arenen und Dungeon-Instanzen.

1. Installiere zuerst das Plugin​

Lege die Plugin-JAR-Datei und alle erforderlichen zwingenden Abhängigkeiten in plugins/ und starte den Server einmal.

2. Führe den Ersteinrichtungsablauf durch​

Wenn das Plugin einen initialize-Befehl anbietet, nutze ihn zuerst. Die aktuellen Menüs sind darauf ausgelegt:

  • die Ersteinrichtung als abgeschlossen zu markieren
  • dich auf die Nightbreak-Kontoverknüpfung hinzuweisen oder den Link für dich zu starten
  • dich zum aktuellen Setup-Menü weiterzuleiten
  • klarzustellen, wann manuelle Importe noch gültig sind

Der Ablauf benötigt keine Preset-Modi; FreeMinecraftModels bietet ihn ebenfalls an. Die Befehlsseite des jeweiligen Plugins nennt die verfügbaren Befehle.

Führe aus:

/nightbreaklogin

Öffne den Link, den der Befehl ausgibt, melde dich an und genehmige den Server. Der Server speichert deinen Konto-Token von selbst. Du kannst weiterhin einen Token von der Nightbreak-Kontoseite mit /nightbreaklogin <token> einfügen. Siehe Nightbreak-Kontoverknüpfung.

Der Token wird über MagmaCore geteilt, sodass ein verknüpfter Token von allen kompatiblen MagmaGuy-Plugins auf diesem Server wiederverwendet werden kann.

4. Nutze das Setup-Menü für die tägliche Inhaltsverwaltung​

Die Setup-Menüs sind die aktuelle Referenzquelle für:

  • Paketstatus
  • Zugriffsstatus
  • installierte vs. heruntergeladene Inhalte
  • teilweise installierte Inhalte, die repariert werden müssen
  • veraltete Inhalte
  • Inhaltsfilter nach Kategorie

Wenn du einen verknüpften Token hast, sind die Setup-Menüs der empfohlene Ort, um Inhalte zu installieren und zu aktualisieren.

5. Nutze Sammelinstallation und Sammelupdates, wenn es schnell gehen soll​

Verwende den downloadall-Befehl, wenn du einen Server schnell einrichten möchtest, und den updatecontent-Befehl, wenn du alles aktualisieren möchtest, was veraltet ist.

Der gemeinsame Massendownloader versucht nur Nightbreak-verwaltete Pakete, die einen Nightbreak-Slug haben. Davon:

  • wählen downloadall und downloadallcontent Pakete, die noch nicht heruntergeladen oder veraltet sind. Über den Zugriff entscheidet die authentifizierte Download-Prüfung von Nightbreak, daher wird ein Paket, auf das dein Konto keinen Zugriff hat, am Ende als fehlgeschlagen aufgeführt.
  • aktualisiert updatecontent zuerst die Paketversionen und wählt dann nur veraltete Pakete aus. Pakete, die die Zugriffsprüfung bereits als gesperrt markiert hat, werden übersprungen.

Interaktive Massenbefehle fordern das besitzende Plugin nach mindestens einem erfolgreichen Download zum Neuladen auf. Automatische Inhalts-Downloads beim Start laden das Plugin bewusst nicht neu; sie werden erst nach einem Server-Neustart wirksam.

Gemeinsame Konzepte​

Heruntergeladen und installiert​

Ein Paket kann lokal existieren, ohne aktiviert zu sein. Die genaue Bedeutung variiert je nach Plugin leicht, aber der Status im Setup-Menü ist wichtiger als ob eine ZIP-Datei in imports existiert.

Massendownloads landen ebenfalls im gleichen Plugin-imports-Ordner, der von manuellen Importen verwendet wird, bevor der plugin-spezifische Import-/Neuladevorgang abgeschlossen ist.

Zugriffsbasierte Inhalte​

Setup-Menüs können jetzt unterscheiden zwischen Inhalten, die:

  • für deinen Token verfügbar sind
  • gekauft oder freigeschaltet werden müssen
  • installiert sind
  • nur teilweise installiert sind
  • heruntergeladen aber deaktiviert sind
  • veraltet sind

Ein Plugin kann ein Paket auflisten, bevor Nightbreak es veröffentlicht. Hat das Plugin die Liste der veröffentlichten Pakete von Nightbreak geladen und steht das Paket nicht darauf, meldet ein Klick auf das Paket, dass es auf Nightbreak noch nicht veröffentlicht wurde. Zugriffsprüfungen und die Sammelbefehle, einschließlich forcereinstallcontent, überspringen es. Antwortet Nightbreak auf eine Anfrage danach dennoch mit „not found", vermerkt die Konsole einmal, dass das Paket nicht veröffentlicht wurde, statt einen API-Fehler zu protokollieren.

Content-Updates archivieren weggefallene Dateien​

Liefert ein aktualisiertes Paket eine Datei nicht mehr mit, die seine vorherige Version installiert hat, verschiebt der Import diese Datei nach plugins/MagmaCore/outdated files/, statt sie geladen zu lassen. Siehe Dateien, die ein Paket-Update nicht mehr mitliefert.

Manuelle Importe sind weiterhin gültig​

Von Nightbreak verwaltete Plugins unterstützen weiterhin manuelle Import-Workflows. Manueller Import ist jetzt der Ausweichpfad, nicht der Standardpfad. Siehe Manuelle Importe vs. In-Game-Verwaltung.

Plugin-Katalog und Empfehlungen​

/nightbreak plugins listet MagmaGuys Plugins auf, im Spiel als Menü und über die Konsole als Chat-Liste. Im Menü öffnet ein Klick auf ein installiertes Plugin dessen Setup-Menü. Ein Klick auf ein fehlendes Plugin lädt dessen Jar direkt in den plugins-Ordner herunter, unter dem Dateinamen aus dem Katalog, was einen verknüpften Token und Supporter-Zugang erfordert; die Chat-Nachricht bittet dich anschließend, den Server neu zu starten, damit das neue Plugin geladen wird. Enthält der plugins-Ordner bereits eine Jar für dieses Plugin, die der Server nicht geladen hat, landet der Download stattdessen unter dem Namen dieser Jar im update-Ordner. Ohne Token oder Zugang verlinkt die Nachricht stattdessen die öffentliche Download-Seite.

/<root> recommendedplugins listet die Begleit-Plugins für ein Plugin auf, jeweils gekennzeichnet als Required, Recommended oder Encouraged. MagmaGuys Plugins verhalten sich wie in /nightbreak plugins. Externe Plugins wie WorldEdit, WorldGuard, LibsDisguises und PacketEvents verlinken auf ihre offiziellen Seiten. Die Schaltfläche Recommended Plugins im Setup-Menü öffnet dieselbe Liste und wird grün, sobald jedes aufgeführte Plugin installiert ist.

Plugins, die diesen Ablauf nicht verwenden​

Nicht jedes Plugin in diesem Wiki verwendet von Nightbreak verwaltete herunterladbare Inhalte.

  • BetterFood verwendet kein Nightbreak-Paketmanagement
  • ResourcePackManager verwaltet Ressourcenpakete, keine Nightbreak-DLC-Pakete

Beide Plugins registrieren dennoch die gemeinsame Setup-Hülle sowie die gemeinsamen Plugin-Update- und Changelog-Befehle; was ihnen fehlt, sind Nightbreak-Inhaltspakete.

ResurrectionChest und WorldCannon sind keine Ausnahmen — beide deklarieren Inhaltspakete, beide registrieren die gemeinsamen Inhalts-Unterbefehle und beide nutzen den gemeinsamen Importeur, akzeptieren also auch von Hand abgelegte Paket-ZIPs. Siehe Manuelle Importe vs. In-Game-Verwaltung.