Plugins konfigurieren
Konfigurationsdateien ermöglichen es den Plugins Daten zu speichern und erlauben es den Administratoren einzelne Teile eines Plugins zu verändern (in sofern es das zulässt). Sponge benutzt Configurate, um einen schnellen Zugriff auf die Konfigurationsdateien anbieten zu können. Die folgenden Artikel werden erklären, wie Configurate benutzt werden muss, um Konfigurationsdateien in ihrem gesamten Umfang nutzen zu können.
Tipp
Um weitere Details über Configurate zu erfahren, solltest du das offizielle Configurate Wiki zu rate ziehen.
Bemerkung
Sponge verwendet das HOCON Konfigurations-Format, das eine Obermenge von JSON ist, als Standard-Format für das Speichern von Konfigurationsdateien. Diese Anleitung geht davon aus, dass du ebenfalls HOCON verwendest. Schau dir Einführung in HOCON für mehr Informationen über das HOCON Format an. Das Arbeiten mit verschiedenen Formaten ist von Configurate relativ ähnlich gehandhabt, daher sollte es kein großes Hindernis sein, wenn du ein anderes Format verwendest.
Schnellstart
Erstellen der Standard-Plugin-Konfiguration
Für Plugins, die Gebrauch von der Sponge API machen, besteht die Möglichkeit mehrere Konfigurationsdateien zu nutzen. Diese Dateien erlauben es Plugins Daten zu speichern und Serveradministratoren ihre Plugins entsprechend zu konfigurieren (falls zutreffend).
Erstellen der Standard-Plugin-Konfiguration
Die Sponge API erlaubt das Verwenden der DefaultConfig Anmerkung vor einer Variable oder einer Methode mit dem Typ File
, um die Standardkonfigurationsdatei für dein Plugin zu finden.
Die @DefaultConfig
Anmerkung benötigt eine boolsche sharedRoot
Variable. Wenn sharedRoot
auf true
gesetzt wird, so liegt der ausgegebene Pfad in einem speziellen Ordner für (Plugin-) Konfigurationen. In diesem Fall wird deine Konfigurationsdatei Deine_Plugin_ID.conf
heissen (mit „Deine_Plugin_ID“ für die von dir vergebene, einmalige ID deines Plugins).
Tipp
Unter Hauptklasse des Plugins sind Informationen verfügbar, wie die Plugin-ID geändert werden kann.
Wenn sharedRoot
auf false
gesetzt wird, so wird der zurückgegebene Pfad auf eine Datei {pluginname}.conf
im Ordner deines Plugins verweisen.
Wenn du nicht sicher bist auf welchen Wert sharedRoot
gesetzt werden sollte, überlege dir folgendes:
Wenn in Zukunft mehrere Konfigurationsdateien genutzt werden sollen (komplexe Plugins), so setze den Wert auf
false
.Wenn nur eine Konfigurationsdatei zum Einsatz kommen soll (bei nicht so komplexen Plugins), setze den Wert auf
true
.
Du kannst außerdem eine Path
Instanz verwenden, die auf dein Konfigurationsverzeichnis zeigt, statt einer speziellen Datei. Du kannst dies durch die ConfigDir Annotation automatisch einfügen lassen. Entweder mit sharedRoot
auf false
gesetzt, wenn du ein Plugin spezifischen Ordner verwenden möchtest, oder auf true
, wenn du das geteilte Konfigurationsverzeichnis verwenden möchtest.
Bemerkung
Während es möglich ist, eine File
statt einem Pfad zu verwenden, empfiehlt Configurate (und Sponge) die Verwendung von Path
.
Ein Beispiel, welches @DefaultConfig
** nutzt:**
import java.nio.file.Path;
import com.google.inject.Inject;
import org.spongepowered.api.config.ConfigDir;
import org.spongepowered.api.config.DefaultConfig;
import ninja.leaping.configurate.commented.CommentedConfigurationNode;
import ninja.leaping.configurate.loader.ConfigurationLoader;
@Inject
@DefaultConfig(sharedRoot = true)
private Path defaultConfig;
@Inject
@DefaultConfig(sharedRoot = true)
private ConfigurationLoader<CommentedConfigurationNode> configManager;
@Inject
@ConfigDir(sharedRoot = false)
private Path privateConfigDir;
Warnung
Wenn dein Plugin zum ersten Mal läuft könnte es sein, dass die Pfade für deine Konfigurationsdateien noch nicht existieren. Wenn du das Auslesen und Schreiben deiner Konfigurationsdateien Configurate überlässt, muss du dir keine Gedanken über nicht existierende Pfade machen, da die Bibliothek dies für dich übernimmt.
Bemerkung
Die Verwendung des YAML-Formats (http://yaml.org/spec/1.1/) wird ebenfalls unterstützt, aber die bevorzugte Konfigurationsformat für Sponge-Plugins ist HOCON. Die Konvertierung von YAML in HOCON kann automatisch durchgeführt werden, indem die alte Konfigurationsdatei mit einem YAMLConfigurationLoader eingelesen wird, um sie dann mit einem HoconConfigurationLoader zu speichern.