Zum Hauptinhalt springen

Konfigurationsanleitung

MagmaCores gemeinsame Konfigurationsverwaltung lehnt unlesbares oder ungültiges YAML vor dem Anwenden von Standardwerten ab, auch bei geerbten Konfigurationen. Beim Speichern wird zuerst eine temporäre Datei geschrieben und auf den Datenträger übertragen; anschließend ersetzt sie das Ziel, wenn möglich atomar. Hält unter Windows ein anderer Prozess, etwa ein Virenscanner oder Datei-Indexer, die Datei kurzzeitig fest und wird das Ersetzen verweigert, versucht der Speichervorgang es bis zu vier weitere Male und wartet dabei insgesamt höchstens 250 Millisekunden. Speicherfehler werden an den Aufrufer gemeldet. Behebe den Dateifehler vor einem erneuten Versuch.

Diese Seite erklärt, wie du eine .yml-Datei (.yaml) korrekt bearbeitest. Nightbreak-Plugins verwenden .yml-Konfigurationsdateien. Ungültiges YAML oder nicht unterstützte Werte können das Laden einer Datei verhindern; manche Einstellungen fallen auf Standardwerte zurück. Bewahre eine Sicherung auf und lies die Konsole nach dem Neuladen.

Unten findest du jeden Konfigurationseintragstyp und wie er formatiert sein sollte, wenn du Werte änderst!

Wie du .yml-Dateien bearbeitest​

Dateien werden im .yml-Dateiformat gespeichert und Notepad++ ist die empfohlene Software zur Bearbeitung von Konfigurationsdateien. Natürlich kannst du auch jeden anderen Texteditor deiner Wahl verwenden.

Ausgemusterte Konfigurationsdateien​

Wenn ein Plugin-Update ein Konfigurationsformat ausmustert, verschiebt MagmaCore passende Dateien nach plugins/MagmaCore/outdated files/<PluginName>/<archive batch>/ und erhält ihren Inhalt sowie ihre relativen Pfade. Die Konsole meldet den Archivpfad. Diese Verarbeitung läuft auch vor und nach Inhaltsimporten, damit ein altes Paket eine ausgemusterte Datei nicht unbemerkt wieder aktivieren kann. Inhaltsimporte verschieben außerdem Dateien in diesen Ordner, die ein aktualisiertes Paket nicht mehr mitliefert; siehe Dateien, die ein Paket-Update nicht mehr mitliefert.

Das Plugin erzeugt seine mitgelieferten Standarddateien neu, sofern Ersatz vorhanden ist. Ausgemusterte DLC-Dateien benötigen ein aktualisiertes Inhaltspaket. Eigene Dateien müssen im aktuellen Format neu geschrieben werden. Vergleiche die archivierte Datei mit der jeweiligen Referenz und übertrage die gewünschten Einstellungen. Wenn du eine archivierte Datei unverändert zurückkopierst, kann sie erneut archiviert werden.

Die Archivierung verwendet bestimmte Regeln des zuständigen Plugins. Eine unbekannte Einstellung oder eine fehlerhafte Datei allein beweist kein ausgemustertes Format. Achte weiterhin auch auf gewöhnliche Ladefehler in der Konsole.

Manche Regeln mustern statt eines Formats eine alte mitgelieferte Standarddatei aus. Eine Regel kann einen exakten Wert nennen, den nur eine ältere Standarddatei enthält, etwa einen alten Menüslot oder eine alte Questliste; ist dieser Wert noch vorhanden, wird die gesamte Datei archiviert. Eine Regel für ein mitgeliefertes Lua-Skript vergleicht die SHA-256-Prüfsumme der Datei, ohne Wagenrückläufe zu berücksichtigen, mit früheren mitgelieferten Versionen dieses Skripts. Nur eine unbearbeitete Kopie stimmt überein, ein von dir geändertes Skript bleibt also an seinem Platz. Anschließend schreibt das Plugin seine aktuelle Standardversion.

Beispielsweise ersetzt BetterStructures die alte Konfiguration Valid worlds durch Valid worlds v2. EliteMobs archiviert ausgewählte veraltete mitgelieferte Items, die alte Willkommensquest der Gilde sowie unbearbeitete Kopien früherer mitgelieferter Lua-Powers und Verzauberungsskripte. FreeMinecraftModels archiviert außerdem erkannte ausgemusterte Lua-Skripte ausgerüsteter Items; aktuelle Prop-Skripte und Verzauberungseffekte verwenden ihre eigenen unterstützten Schnittstellenverträge.

Doppelte Dateinamen​

Plugins, die Inhalte über MagmaCore laden, identifizieren jede Inhaltsdatei anhand ihres Dateinamens, auch in Unterordnern. Haben zwei Dateien im selben Inhaltsordner denselben Dateinamen, wird nur die Datei geladen, deren vollständiger Pfad ohne Berücksichtigung von Groß- und Kleinschreibung in der Sortierung zuerst kommt. Die Konsole warnt mit dem geladenen und dem übersprungenen Pfad. Sie bleibt still, wenn die Kopien identisch sind oder wenn es YAML-Dateien sind und jeder Wert in der übersprungenen Kopie mit der geladenen übereinstimmt; das passiert, wenn zwei Inhaltspakete dieselbe gemeinsame Datei mitliefern. Gib Dateien, die getrennt geladen werden sollen, eindeutige Dateinamen. Manche Ordner sind strenger: Doppelte Schematic-Dateinamen im modules-Ordner von BetterStructures stoppen das Laden der Module.

Boolean​

Boolean-Werte sind true oder false. So sehen sie aus:

value1: true
value2: false

Booleans akzeptieren nur true oder false als Werte. Sie werden normalerweise verwendet, um bestimmte Funktionen ein- oder auszuschalten.

String​

String-Werte sind normalerweise einfacher Text. Es wird dringend empfohlen, String-Werte in Anführungszeichen zu setzen, nach folgendem Format:

value: "String"

Setze Strings mit Farbcodes in Anführungszeichen, insbesondere wenn das erste Zeichen & ist. In einem unterstützten Textfeld erzeugt "&aTest" grünen Text. Ob farbiger Text verfügbar ist, hängt von der Konfigurationseinstellung ab. Die Farbcodes findest du auf dieser Seite.

Details

Warum? Konfigurationsstrings können Sonderzeichen wie & enthalten. Steht ein solches Zeichen am Anfang, etwa in value: "&aString", und fehlen die Anführungszeichen um den String, kann YAML das & als Anker statt als gewöhnlichen Text interpretieren. Setze den gesamten String in Anführungszeichen, um einen Parserfehler oder einen unbeabsichtigten Wert zu vermeiden.

Serialized Location​

Serialized Location ist ein spezifischer String-Typ, der so aussieht:

location: world,1.0,2.0,3.0,4.0,5.0

Diese werden verwendet, um Orte zu speichern und zu konfigurieren. Sie folgen diesem Format: worldName,X,Y,Z,YAW,PITCH. Yaw und Pitch bestimmen die Blickrichtung des Spielers und verwenden dieselben Werte wie Minecraft-Locations.

Multiplier​

Multiplier-Werte multiplizieren Plugin-Werte mit dieser Zahl. Diese Werte sollten niemals in Anführungszeichen stehen. Hier ein Beispiel:

damageMultiplier: 1.0

In diesem Fall würde der Schadensmultiplikator mit 1 multipliziert, was bedeutet, dass es keine Änderung gegenüber dem Standardwert gibt. Wenn der Multiplier 2.0 wäre, würde der Wert mit 2.0 multipliziert. Wenn er 0.5 wäre, würde er mit 0.5 multipliziert.

Für diejenigen, die sich mit Brüchen nicht gut auskennen: Multiplizieren mit 0.5 ist dasselbe wie Teilen durch 2. Der zulässige Bereich hängt von der jeweiligen Einstellung ab. Prüfe ihre Referenz, bevor du null, einen negativen Wert oder einen großen Multiplikator verwendest.

Integer​

Integer-Werte sind einfach ganze Zahlen. Beispiel:

value: 10

Nur Felder, deren Skripting-Dokumentation Zahlenbereiche ausdrücklich unterstützt, akzeptieren ~. Dies ist ein String, den die jeweilige Funktion auswertet, keine YAML-Zahl und keine allgemeine Konfigurationsoption. Beispiel:

value: 1~10

Das Wichtigste bei Integer-Werten ist, dass sie ganze Zahlen sein müssen. Das bedeutet, dass 10.1 nicht gültig ist.

Double​

Doubles sind Dezimalzahlen, die Nachkommastellen haben können. Beispiel:

value: 10.01

Nur Felder, deren Skripting-Dokumentation Zahlenbereiche ausdrücklich unterstützt, akzeptieren ~. Dies ist ein String, den die jeweilige Funktion auswertet, keine YAML-Zahl und keine allgemeine Konfigurationsoption. Beispiel:

value: 1.0~10.01

Doubles können auch ganze Zahlen wie Integers sein, wie 10.0 oder sogar dargestellt als 10.

Float​

Floats sind 32-Bit-Dezimalzahlen mit geringerer Präzision als Doubles. Beispiel:

value: 10.42452

Nur Felder, deren Skripting-Dokumentation Zahlenbereiche ausdrücklich unterstützt, akzeptieren ~. Dies ist ein String, den die jeweilige Funktion auswertet, keine YAML-Zahl und keine allgemeine Konfigurationsoption. Beispiel:

value: 1.0~10.42452

Floats können auch ganze Zahlen sein, wie 10.0 oder sogar dargestellt als 10.

String List​

String Lists sind Listen von String-Werten. Diese sind in der Regel die am schwierigsten zu konfigurierenden Werte, da sie ein sehr spezifisches Konfigurationsformat erfordern:

valuesList:
- "value,1"
- "value,2"
- "value,3"

Wie bei Strings wird empfohlen, die Werte in Anführungszeichen zu setzen. Jede String List hat ihr eigenes Format, du musst also das spezifische Format finden, das die von dir bearbeitete Liste erfordert; jedoch ist das oben gezeigte das allgemeine Format.

Map List​

Eine Map-Liste enthält mehrere Zuordnungseinträge. Dieses YAML-Beispiel verschachtelt jeden Wert unter einer benannten Map; die tatsächlichen Schlüssel hängen von der Einstellung ab:

parentMap:
- Map1:
key: value
- Map2:
key: value
keyForList:
- "value1"
- "value2"

Wie du sehen kannst, können Map Lists jede Art von Format enthalten, aber wenn du sie im Scripting verwendest, musst du die Dokumentation konsultieren, um zu sehen, welche gültigen Schlüssel und Werte für die verschiedenen Maps verfügbar sind.

Color Codes​

Du kannst auch Farben zuweisen oder Text fett formatieren, indem du folgende Modifikatoren verwendest:

CodeFarbeBeispiel
&4Dunkelrot
&4Dunkelrot-Beispiel.
&cRot
&cRot-Beispiel.
&6Orange
&6Orange-Beispiel.
&eGelb
&eGelb-Beispiel.
&2Dunkelgrün
&2Dunkelgrün-Beispiel.
&aGrün
&aGrün-Beispiel.
&bAqua
&bAqua-Beispiel.
&3Dunkelaqua
&3Dunkelaqua-Beispiel.
&1Dunkelblau
&1Dunkelblau-Beispiel.
&9Blau
&9Blau-Beispiel.
&dHelllila
&dHelllila-Beispiel.
&5Dunkellila
&5Dunkellila-Beispiel.
&fWeiß
&fWeiß-Beispiel.
&7Grau
&7Grau-Beispiel.
&8Dunkelgrau
&8Dunkelgrau-Beispiel.
&0Schwarz
&0Schwarz-Beispiel.
&rFarbe zurücksetzen&rZurücksetz-Beispiel.
&lFett&lFett-Beispiel.
&oKursiv&oKursiv-Beispiel.
&nUnterstrichen&nUnterstrichen-Beispiel.
&mDurchgestrichen&mDurchgestrichen-Beispiel.
&kZufällig&k
&fBeispiel.

Wie du in den Beispielen sehen kannst, folgen die Modifikatoren der regulären Minecraft-Syntax, außer dass das § durch ein & ersetzt wird, wenn es mit EliteMobs verwendet wird. Du kannst dies verwenden, um die meisten EliteMobs-Texte zu modifizieren, wie Mob-Namen, Quest-Texte, Dungeon-Namen usw.

Beachte, dass die Modifikatoren selbst bei korrekter Funktion nicht in deinem Text angezeigt werden. Sie werden hier nur zu Demonstrationszwecken gezeigt.

Es ist auch möglich, Farben und andere Textmodifikatoren zu kombinieren. Zum Beispiel kannst du:

&a&oGrünen kursiven Text erhalten.

Wenn wir unserem benutzerdefinierten Mob einen schicken farbenfrohen Namen geben wollen, würden wir Folgendes tun:

name: "$normalBossLevel &aScary &dDragon"

Ab EliteMobs 10 kannst du auch Farbverläufe für jeden EliteMobs-Text verwenden, wie in diesem Beispiel gezeigt:

name: "&cNormal Red Text <gradient:#FF6B00:#FFD700:#FFFF00> Cool Gradient Text </gradient>"

In diesem Beispiel:

  • &c wendet standardmäßige rote Formatierung auf den Text vor dem Verlauf an.
  • <gradient:...> beginnt die Verlaufsdefinition.
  • #FF6B00, #FFD700 und #FFFF00 sind die im Verlauf verwendeten Farben.
  • Cool Gradient Text ist der Text, der vom Verlauf betroffen ist.
  • </gradient> beendet den Verlaufsabschnitt.

Nur der Text innerhalb der Gradient-Tags ist betroffen; die Formatierung außerhalb der Tags bleibt unverändert.

Gradienten sind kein reines EliteMobs-Feature mehr. Der Text-Parser liegt in MagmaCore, daher funktioniert dieselbe Syntax in unterstützten Textfeldern jedes Plugins, das MagmaCore mitliefert, ebenso wie der restliche MiniMessage-Tag-Satz (<rainbow>, <#RRGGBB>, benannte Farben wie <red>, Dekorationen wie <bold> und so weiter).

Material​

Material-Werte sind einfach Materialien, die du in MineCraft findest, wie IRON_CHESTPLATE. Für eine Liste gültiger Materialien siehe diese Seite.

helmet: IRON_HELMET

Materialien werden als Werte in verschiedenen Einstellungen verwendet, wie z.B. Ausrüstung für Mobs, Beutedrop, Quest-Belohnungen usw.

Filename​

Filename-Werte sind einfach .yml-Konfigurationsdateien, die für die Verwendung mit MagmaGuys Plugins formatiert sind. Dies können alles sein, von Items bis zu Quests.

uniqueLootList:
- filename: magmaguys_toothpick.yml

Welten trimmen​

Du kannst die Größe einer Welt für die Verteilung reduzieren, indem du unerwünschtes Gelände mit einem kompatiblen Werkzeug wie WorldBorder entfernst. Prüfe die Unterstützung für deine genaue Serverversion und arbeite mit einer Sicherungskopie. Eine alte Kompatibilitätsangabe belegt keine Unterstützung für ein neueres Weltformat.

Details

Tipp Wenn du dies zum ersten Mal machst, wäre es eine gute Idee, ein Backup deiner Welt zu erstellen, falls etwas schiefgeht.

Sobald das Plugin installiert ist, navigiere zur Mitte der Welt oder zum bestimmten Bereich, den du trimmen möchtest. Führe dann den Befehl /wb set x aus, wobei x die ungefähre Radiusgröße darstellt, die du für deinen Bereich möchtest.

Details

Tipp Wenn /wb bei dir nicht funktioniert, versuche /worldborder:wb.

Nachdem du diesen Befehl ausgeführt hast, fliege zu den Rändern deiner Welt, um zu überprüfen, ob die Weltgrenze korrekt gesetzt wurde und die beabsichtigte Größe abdeckt. Du erkennst das Erreichen des Weltgrenzenrands daran, dass du zurückgestoßen wirst, begleitet von einer Nachricht im Chat.

trim_pic_1.jpg

Im obigen Bild wollen wir die Welt um die lila Blöcke trimmen und nur einige Chunks um sie herum belassen. Dazu stellen wir uns in die Mitte des lila Bereichs auf die roten Felder und führen /wb set 50 aus, wodurch die Weltgrenze knapp über den lila Bereich hinaus gesetzt wird.

Verwende anschließend /wb trim [freq] [pad]. Der zusätzliche Rand (pad) wird in Blöcken gemessen; die Frequenz bestimmt, wie viele Chunks pro Sekunde geprüft werden. /wb trim 200 20 prüft bis zu 200 Chunks pro Sekunde und behält 20 Blöcke jenseits der Grenze. Prüfe diesen Rand und wähle bei Bedarf einen größeren Abstand, bevor du mit /wb trim confirm bestätigst. Diese Einheiten sind im Trim-Befehl von WorldBorder definiert.

Entferne die Plugin-Grenze dieser Welt mit /wb clear, während du in dieser Welt stehst, oder lasse sie bestehen.

Den Weltordner trimmen​

Stoppe den Server und arbeite mit einer Sicherungskopie. Lösche nicht alles außer region, raids.dat und level.dat: Gelände, Entitäten, Points of Interest und Dimensionsdaten können erforderlich sein. Erhalte die tatsächliche Ordnerstruktur deines Servers und Plugins.

In älteren Vanilla-Welten verwendet der Nether DIM-1 und das Ende DIM1. Seit Vanilla 26.1 liegen die Standarddimensionen unter dimensions/minecraft/overworld, dimensions/minecraft/the_nether und dimensions/minecraft/the_end, einschließlich ihrer Ordner region, entities und poi. Das benötigte Layout hängt von Serversoftware und Version ab. Importiere die Kopie auf einem separaten Server und prüfe die Welt vor der Verteilung.

Minecraft 26.1 · Paper