Zum Inhalt springen

Konfigurationsdateien und Prompts

Viele Spiele lesen ihren Port, die Spielergrenze oder Passwörter aus einer Konfigurationsdatei statt von der Kommandozeile. configFiles schreibt Werte vor jedem Start in diese Dateien, wie es Wings von Pterodactyl tut:

configFiles:
- path: server.properties # relativ zu den Dateien des Servers; darf Platzhalter verwenden
parser: properties
values:
- key: server-port
value: "{{server.build.default.port}}"
- key: max-players
value: "{{env.MAX_PLAYERS}}"
parser Datei Schlüssel
properties (Standard) Zeilen key=value (server.properties) der Schlüssel
ini [section] und key=value section.key, oder ohne Abschnitt für den Anfang
json ein JSON-Dokument ein Pfad mit Punkten: network.port
yaml ein YAML-Dokument ein Pfad mit Punkten
file irgendeine Textdatei eine Zeile, die mit dem Schlüssel beginnt, wird durch den Wert ersetzt
  • Bestehende Schlüssel werden an Ort und Stelle ersetzt; fehlende werden in der angegebenen Reihenfolge ergänzt. Alles andere in der Datei bleibt, wie es ist.
  • Eine fehlende Datei wird angelegt; das Spiel kann den Rest beim ersten Start ergänzen.
  • json behält Zahlen und true/false als JSON-Typen. yaml behält keine Kommentare.

Fragt ein Spiel etwas in seiner Konsole, kann die Serverseite einen Button zeigen, der genau das tut, was das Template festlegt: Dateien schreiben, einen Befehl senden, dann starten oder neu starten. Sonst nichts.

prompts:
- id: eula
when: You need to agree to the EULA # Text in einer Konsolenzeile (ohne Gross-/Kleinschreibung)
title: The server needs the Minecraft EULA accepted
message: By accepting you agree to the Minecraft End User License Agreement.
link:
label: Minecraft EULA
url: https://aka.ms/MinecraftEULA
action: Accept and start # der Button
writeFiles:
- path: eula.txt
content: "eula=true\n"
command: null # oder ein Konsolenbefehl
then: start # none · start · restart

Der Prompt verschwindet beim nächsten Serverstart. Der Import eines Eggs mit dem Pterodactyl-Feature eula erzeugt genau diesen Prompt.