Configuration des plugins

Les fichiers de configuration permettent aux plugins de stocker des données, ainsi que de permettre aux administrateurs de serveur de prendre facilement le contrôle sur des parties spécifiques d’un plugin, si vous choisissez de les laisser faire. Sponge utilise Configure pour vous permettre de manipuler facilement les fichiers de configuration. Ces pages vous expliqueront comment utiliser la configuration pour pouvoir utiliser les fichiers de configuration à votre plein avantage.

Astuce

Voir le Wiki de Configurate pour obtenir des informations plus détaillées sur l’utilisation de ses composants.

Note

Sponge se sert du format de configuration HOCON, un sur-ensemble de JSON, comme format par défaut pour des fichier de configuration sauvegardés. Le reste de ce guide suppose que vous savez déjà utiliser HOCON. Regarder la page Introduction à HOCON pour plus d’informations concernant le format HOCON. La manière de travailler avec différents formats ressemble à la manière de travailler avec un système de configuration, vous ne devriez donc pas faire face à beaucoup de problèmes si vous utilisez un autre format à la place.

Démarrage rapide

Créer une Configuration de Base pour votre Plugin

Les plugins utilisant l’API Sponge ont la possibilité d’utiliser un ou plusieurs fichiers de configuration. Les fichiers de configuration permettent aux plugins stocker des données, et permettent aux administrateurs du serveur de personnaliser les options du plugin (si possible).

Votre Première Configuration par Défaut

L’API Sponge offre l’utilisation de l’annotation DefaultConfig sur une méthode ou un champ avec le type Path pour obtenir le fichier de configuration par défaut de votre plugin.

L’annotation @DefaultConfig exige un booléen sharedRoot. Si vous définissez sharedRoot sur true, le chemin d’accès retourné sera dans un répertoire de configuration partagé. Dans ce cas, le fichier de configuration pour votre plugin sera your_plugin_id.conf, où « your_plugin_id » est remplacé par l’ID de votre plugin.

Astuce

Voir Classe Principale du Plugin pour les informations sur la configuration de votre ID de plugin.

Si vous définissez sharedRoot sur false, le chemin d’accès retourné fera référence à un fichier nommé {pluginname}.conf dans un répertoire spécifique à votre plugin.

Si vous n’êtes pas sûr de ce qu’il faut définir pour la valeur de sharedRoot, jetez un œil à cela:

  • Si vous prévoyez d’avoir plusieurs fichiers de configuration (plugin complexe), vous devrez mettre la valeur sur false.
  • Si vous envisagez d’avoir un seul fichier de configuration (plugin moins complexe), vous devrez mettre la valeur sur true.

Vous pouvez également obtenir une instance de Path pointant sur le répertoire de config au lieu d’un fichier particulier. Juste l’avoir injecté à l’aide de l’annotation ConfigDir, soit avec sharedRoot définit sur false pour un répertoire spécifique de plugin, ou sur true pour obtenir le répertoire de configuration partagé.

Note

Bien qu’il soit possible de récupérer un File au lieu d’un Path, Configurate (et Sponge) recommandent d’utiliser Path.

Exemple - Field utilisant @DefaultConfig

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;

Avertissement

Lorsque votre plugin s’exécute pour la première fois, les chemins d’accès aux fichiers de configuration et aux répertoires peuvent ne pas encore exister. Si vous déléguez toute lecture / écriture de fichiers à Configurate, vous n’aurez pas besoin de vous soucier des chemins non-existants car la bibliothèque les gérera correctement.

Note

Le format YAML (http://yaml.org/spec/1.1/) est également supporté, mais le format préféré pour les configurations de plugins Sponge est HOCON. La conversion de YAML à HOCON peut être automatiséeen utilisant un YAMLConfigurationLoader pour charger l’ancienne configuration puis la sauvegarder en utilisant un HoconConfigurationLoader.