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.