Zum Hauptinhalt springen

Manuelle Importe vs. In-Game-Verwaltung

Von Nightbreak verwaltete Plugins bevorzugen jetzt die In-Game-Einrichtung und Inhaltsverwaltung, aber manuelle Importe existieren weiterhin als Ausweichoption.

Verwende das Setup-Menü plus einen verknüpften Nightbreak-Token, wenn du möchtest:

  • zugriffsbasiertes Durchsuchen von Inhalten
  • Ein-Klick- oder menügesteuerte Installation
  • Massendownload- und Aktualisierungsbefehle
  • automatische Prüfungen auf veraltete Pakete
  • einen Workflow, der zur aktuellen Codebasis passt

Dies ist der bevorzugte Weg für:

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

Alle sechs nutzen den gemeinsamen Importeur, also akzeptieren auch alle sechs die untenstehende manuelle Ausweichoption.

Ausweichoption: Manuelle Importe​

Manuelle Importe sind weiterhin nützlich, wenn:

  • du bereits heruntergeladene Paket-ZIPs hast
  • du Dateien zwischen Servern verschiebst
  • du während des Testens offline von Nightbreak arbeiten möchtest
  • ein Paket absichtlich außerhalb des In-Game-Download-Pfads verteilt wird

Massendownloads über Nightbreak landen ebenfalls im Plugin-imports-Ordner. Der Unterschied ist, dass der In-Game-Pfad die Zugriffsprüfungen und den Downloadschritt für dich übernimmt.

Import-Ordner-Übersicht​

PluginImport-Ordner
EliteMobsplugins/EliteMobs/imports
BetterStructuresplugins/BetterStructures/imports
FreeMinecraftModelsplugins/FreeMinecraftModels/imports
EternalTDplugins/EternalTD/imports
ResurrectionChestplugins/ResurrectionChest/imports
WorldCannonplugins/CannonRTP/imports

Der Plugin-Ordner von WorldCannon heißt CannonRTP — das ist der interne Name des Plugins, und dort liegen sowohl sein imports-Ordner als auch seine installierten Inhalte.

Regeln für manuelle Importe​

  • Lasse das heruntergeladene Paket gezippt, sofern die plugin-spezifische Dokumentation nichts anderes sagt.
  • Lege das Paket in den richtigen imports-Ordner.
  • Lade das Plugin neu oder starte es neu, wenn die plugin-spezifische Dokumentation dies erfordert.
  • Öffne danach das Setup-Menü, um den Installationsstatus zu bestätigen.

Der gemeinsame Importeur kann verarbeiten:

  • .zip-Pakete, die in imports abgelegt werden
  • bestimmte bereits entpackte Ordner, wenn sie pack.meta enthalten
  • .bbmodel-Dateien für FreeMinecraftModels

Archive werden in einen versteckten Staging-Ordner innerhalb von imports entpackt und nur von dort aus installiert. Der Importeur löscht diesen Staging-Ordner nach Erfolg wie nach Fehlschlag, sodass ein normaler fehlgeschlagener Import die ursprüngliche Zip-Datei bereit für einen erneuten Versuch zurücklässt statt eines sichtbaren halb entpackten Pakets daneben.

Was der Importer akzeptiert​

pack.meta entscheidet, wohin Inhalte gehen​

Ein Paket kann auf oberster Ebene eine pack.meta-Datei mitliefern, die die Ziel-Plugin-Plattform benennt — elitemobs, betterstructures, freeminecraftmodels, eternaltd, extractioncraft, resurrectionchest, megablocksurvivors oder worldcannon (auch als cannonrtp oder world_cannon akzeptiert). Dieser Name wird ohne Beachtung der Groß-/Kleinschreibung abgeglichen, und umgebende Leerzeichen, Zeilenenden sowie eine führende Byte-Order-Mark werden ignoriert, sodass eine mit einem Windows-Editor gespeicherte Datei problemlos funktioniert.

Hat das Archiv keine pack.meta, wird es als Paket für das Plugin behandelt, in dessen imports-Ordner es abgelegt wurde.

Benennt pack.meta etwas, das der Importeur nicht kennt, wird das Paket abgelehnt und die Zip-Datei bleibt in imports liegen, damit du sie korrigieren und es erneut versuchen kannst.

Namen von Ordnern der obersten Ebene müssen bekannt sein​

Der Importeur leitet jeden Ordner der obersten Ebene im Paket anhand seines Namens an ein Ziel weiter. Einige Namen funktionieren für jede Plattform:

OrdnerGeht nach
worldcontainerWeltcontainer des Servers (jeder Unterordner wird zu einer Welt)
models oder modelengineModellordner von FreeMinecraftModels, oder Blueprints-Ordner von ModelEngine, wenn nur ModelEngine installiert ist
scriptsplugins/FreeMinecraftModels/scripts
freeminecraftmodels, elitemobs, betterstructuresDer Datenordner dieses Plugins (plugins/FreeMinecraftModels, plugins/EliteMobs oder plugins/BetterStructures). Baue den Ordner wie den Datenordner auf, zum Beispiel freeminecraftmodels/enchantments/
pack.metaWird ignoriert — es sind Metadaten, kein Inhalt

Modelle unter freeminecraftmodels/models/ gehen in den Modellordner, den FreeMinecraftModels liest, einschließlich des Models-Ordners einer älteren Installation.

Jeden anderen Ordner der obersten Ebene löst der Importeur für die Plattform auf, auf die das Paket abzielt. Jeder Ordner geht in den gleichnamigen Ordner im Datenordner des Plugins, sofern die Tabelle nichts anderes angibt:

PlattformOrdner für dieses PluginOrdner für ein anderes Plugin
elitemobscustombosses, customitems, customtreasurechests, content_packages (auch dungeonpackages geht dorthin), customevents, customspawns, customquests, customarenas, npcs, npc_scripts, behaviors, transport_routes, transport_networks, wormholes, powers, world_blueprints, resource_pack, enchantmentsKeine
betterstructurescontent_packages, schematics, spawn_pools, components, modules, module_generators, treasures, generatorsEliteMobs: custombosses, customitems, customtreasurechests, powers, enchantments
freeminecraftmodelscontent_packages, recipes, enchantmentsEliteMobs: customitems, wird übersprungen, wenn EliteMobs nicht aktiviert ist
eternaltdnpcs, levels, waves, worlds, content_packages, content_markersKeine
resurrectionchestcontent_packagesKeine
worldcannoncontent_packages, cannons (auch fun_rtps geht dorthin) sowie cannonrtp, worldcannon oder world_cannon für den Datenordner selbst (plugins/CannonRTP)Keine
extractioncraftcontent_packages, loot_pools, loot_tablesEliteMobs: customquests, npcs, custombosses, customitems, customtreasurechests, powers, enchantments, npc_scripts, behaviors. BetterStructures: schematics, spawn_pools, components, modules, module_generators, treasures, generators
megablocksurvivorscontent_packages, npcs, schematics, worlds, content_markers sowie megablocksurvivors für den Datenordner selbst (plugins/MegaBlockSurvivors)Keine

Ein Ordner enchantments/ enthält Verzauberungsdefinitionen und ihre lokalen Lua-Effekte und verwendet nie den globalen Zielpfad für scripts/. Um FreeMinecraftModels-Verzauberungen im Paket einer anderen Plattform auszuliefern, verwende freeminecraftmodels/enchantments/.

Ein Ordner der obersten Ebene, den der Importeur für diese Plattform nicht kennt, führt zur Ablehnung des gesamten Pakets statt zu einer teilweisen Installation, und das Archiv bleibt erhalten. Wenn dein Paket sich nicht importieren lässt, nennt die Konsole den betreffenden Ordner.

Importe in den Ordner eines anderen Plugins​

Plugins lesen ihre Inhaltsordner beim Start oder beim Neuladen. Importiert ein Paket Dateien in den Ordner eines anderen Plugins:

  • FreeMinecraftModels lädt seine importierten Inhalte automatisch neu.
  • BetterStructures lädt die neuen Inhalte neu, sobald sein eigener Start abgeschlossen ist. Startet es 10 Minuten später immer noch, fordert dich die Konsole auf, /bs reload auszuführen.
  • Ein BetterStructures-Paket, das EliteMobs-Inhalte importiert, lädt EliteMobs neu.
  • Importiert Extractioncraft Pakete, lädt es BetterStructures neu und auch EliteMobs, wenn ein Paket EliteMobs-Inhalte hinzugefügt hat.

In anderen Fällen lade das Plugin, dem der Ordner gehört, neu oder starte es neu.

Eine geladene Welt aktualisieren​

Bevor der Importeur eine geladene Welt ersetzt, versetzt er ihre Spieler zum Spawn einer anderen geladenen Welt und fordert den Server auf, die Zielwelt zu entladen. Ist keine andere Welt verfügbar, schlägt ein Teleport fehl oder verweigert der Server das Entladen, wird der Import angehalten und das Archiv bleibt erhalten. Entferne die Spieler aus der Welt und behebe das gemeldete Problem vor einem erneuten Versuch.

Ausgemusterte Dateien in einem Import​

Das zuständige Plugin prüft vor und nach Importen auf ausgemusterte Konfigurationsformate. Passende Dateien bleiben unter plugins/MagmaCore/outdated files/ außerhalb der aktiven Inhaltsordner erhalten. Wenn ein altes Paket ausgemusterte Inhalte installiert, lade seine aktualisierte Version herunter. Siehe ausgemusterte Konfigurationsdateien.

Dateien, die ein Paket-Update nicht mehr mitliefert​

Importe kopieren und überschreiben Dateien. Für sich genommen würden sie daher eine Datei zurücklassen, die eine neuere Paketversion fallen gelassen hat, und das Plugin würde sie weiter laden. MagmaCore hält deshalb die Dateien, die jedes Paket im Ordner plugins installiert, in plugins/MagmaCore/import manifests/ fest, eine JSON-Datei pro Paket. Das Paket wird nach dem Zip oder Ordner ohne .zip und ohne angehängte Version wie _v22 benannt, sodass the-vampire-manor_v22.zip und the-vampire-manor_v23.zip dasselbe Paket sind.

Liefert der nächste Import dieses Pakets eine Datei nicht mehr mit, die der vorherige Import installiert hat, verschiebt der Importeur die Datei nach plugins/MagmaCore/outdated files/<plugin folder>/<time>-<package>/, behält dabei ihren Pfad innerhalb des Plugin-Ordners bei, und die Konsole listet die verschobenen Dateien auf. Das Verschieben ist Teil der Import-Transaktion, ein fehlgeschlagener Import legt die Dateien also zurück. Dateien werden verschoben statt gelöscht, sodass deine Änderungen daran in der archivierten Kopie erhalten bleiben.

Eine Datei bleibt an Ort und Stelle, wenn:

  • der Eintrag eines anderen Pakets sie weiterhin auflistet
  • der vorherige und der aktuelle Import keine Dateien gemeinsam haben, ein unabhängiges Paket den Namen also wiederverwendet hat
  • sie außerhalb des Ordners plugins liegt, etwa ein Weltordner, den Importe vollständig ersetzen

Beim ersten aufgezeichneten Import eines Pakets wird nichts archiviert. Die Bereinigung beginnt mit seinem nächsten Update.

Fehlgeschlagene Importe werden zurückgerollt​

Bleibt die Wiederherstellung unvollständig, bewahrt MagmaCore das Wiederherstellungsverzeichnis auf und protokolliert dessen Pfad sowie die nicht wiederhergestellten Ziele. Bewahre diese Dateien auf und behebe die gemeldeten Fehler, bevor du den Import erneut versuchst.

Ein Import wird als eine einzige Transaktion angewendet. Bestehende Dateien werden vor dem Ersetzen gesichert, ersetzte Weltordner werden beiseitegeschoben statt gelöscht, und ein Fehlschlag mittendrin stellt jedes Ziel wieder her, das das Paket berührt hatte. Die Zip-Datei bleibt in imports, damit du es nach Behebung des Fehlers erneut versuchen kannst. Stößt das Zurückrollen selbst auf einen Dateisystemfehler, meldet die Konsole ausdrücklich, dass das Zurückrollen unvollständig war, und fordert dich auf, die protokollierten Ziele zu prüfen, bevor du es erneut versuchst.

Das Archiv wird erst gelöscht, wenn der Import vollständig festgeschrieben wurde. Wenn nach einem Neuladen noch ein Paket in imports liegt, sagt dir der Importeur damit, dass er es nicht installiert hat — prüfe die Konsole auf den Grund.

Wichtige Unterschiede​

In-Game-Pfad​

  • Token-bewusst
  • kann gesperrte und veraltete Inhalte anzeigen
  • lädt nach Massenoperationen normalerweise automatisch neu
  • entspricht dem aktuell vorgesehenen Admin-Workflow

Manueller Pfad​

  • funktioniert ohne In-Game-Download-Zugang
  • erfordert, dass du ZIP-Dateien selbst verwaltest
  • kann trotzdem ein Plugin-Neuladen erfordern
  • kann Inhalte je nach Plugin in einem heruntergeladen-aber-nicht-aktiviert-Status belassen
  • kann Paketstrukturprobleme aufdecken, die der In-Game-Zugriffspfad normalerweise erst bei der Installation zeigen würde