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.
Empfohlen: In-Game-Verwaltung
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
| Plugin | Import-Ordner |
|---|---|
| EliteMobs | plugins/EliteMobs/imports |
| BetterStructures | plugins/BetterStructures/imports |
| FreeMinecraftModels | plugins/FreeMinecraftModels/imports |
| EternalTD | plugins/EternalTD/imports |
| ResurrectionChest | plugins/ResurrectionChest/imports |
| WorldCannon | plugins/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 inimportsabgelegt werden- bestimmte bereits entpackte Ordner, wenn sie
pack.metaenthalten .bbmodel-Dateien fürFreeMinecraftModels
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:
| Ordner | Geht nach |
|---|---|
worldcontainer | Weltcontainer des Servers (jeder Unterordner wird zu einer Welt) |
models oder modelengine | Modellordner von FreeMinecraftModels, oder Blueprints-Ordner von ModelEngine, wenn nur ModelEngine installiert ist |
scripts | plugins/FreeMinecraftModels/scripts |
freeminecraftmodels, elitemobs, betterstructures | Der Datenordner dieses Plugins (plugins/FreeMinecraftModels, plugins/EliteMobs oder plugins/BetterStructures). Baue den Ordner wie den Datenordner auf, zum Beispiel freeminecraftmodels/enchantments/ |
pack.meta | Wird 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:
| Plattform | Ordner für dieses Plugin | Ordner für ein anderes Plugin |
|---|---|---|
elitemobs | custombosses, 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, enchantments | Keine |
betterstructures | content_packages, schematics, spawn_pools, components, modules, module_generators, treasures, generators | EliteMobs: custombosses, customitems, customtreasurechests, powers, enchantments |
freeminecraftmodels | content_packages, recipes, enchantments | EliteMobs: customitems, wird übersprungen, wenn EliteMobs nicht aktiviert ist |
eternaltd | npcs, levels, waves, worlds, content_packages, content_markers | Keine |
resurrectionchest | content_packages | Keine |
worldcannon | content_packages, cannons (auch fun_rtps geht dorthin) sowie cannonrtp, worldcannon oder world_cannon für den Datenordner selbst (plugins/CannonRTP) | Keine |
extractioncraft | content_packages, loot_pools, loot_tables | EliteMobs: customquests, npcs, custombosses, customitems, customtreasurechests, powers, enchantments, npc_scripts, behaviors. BetterStructures: schematics, spawn_pools, components, modules, module_generators, treasures, generators |
megablocksurvivors | content_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 reloadauszufü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
pluginsliegt, 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