Konfiguracja Pluginów

Pliki konfiguracyjne umożliwiają wtyczkom przechowywanie danych oraz pozwalają administratorom serwerów bez problemu przejąć kontrolę nad określonymi elementami wtyczki, jeśli zdecydujesz się na to zezwolić. Sponge używa konfiguracji, aby umożliwić łatwą manipulację plikami konfiguracyjnymi. Strony te wyjaśnią ci jak korzystać z konfiguracji, aby móc w pełni wykorzystać pliki konfiguracyjne.

Wskazówka

See the official Configurate wiki to gain more in-depth information about working with its components.

Informacja

Sponge makes use of the HOCON configuration format, a superset of JSON, as the default format for saving configuration files. The rest of this guide will assume you are using HOCON as well. See Wprowadzenie do HOCON more for information regarding the HOCON format. Working with different formats is made relatively similar by the Configurate system, so it should not pose too much of an issue if you use an alternate format instead.

Szybki Start

Tworzenie domyślnej konfiguracji pluginu

Plugins using the Sponge API have the option to use one or more configuration files. Configuration files allow plugins to store data, and they allow server administrators to customize plugin options (if applicable).

Otrzymanie domyślnej konfiguracji pluginu

The Sponge API offers the use of the DefaultConfig annotation on a field or setter method with the type Path to get the default configuration file for your plugin.

The @DefaultConfig annotation requires a sharedRoot boolean. If you set sharedRoot to true, then the returned pathname will be in a shared configuration directory. In that case, the configuration file for your plugin will be your_plugin_id.conf (with „your_plugin_id” replaced with your plugin’s specified ID).

Wskazówka

Zobacz Główna Klasa Pluginu w celu uzyskania informacji dotyczących konfigurowania ID twojego pluginu.

If you set sharedRoot to false, the returned pathname will refer to a file named {pluginname}.conf in a directory specific to your plugin.

If you are unsure of what to set the value of sharedRoot to, consider the following:

  • If you plan on having multiple configuration files (complex plugins) in the future, set the value to false.
  • If you plan on having a single configuration file (less-complex plugins), set the value to true.

You can also obtain a Path instance pointing to the config directory instead of a particular file. Just have it injected using the ConfigDir annotation, either with sharedRoot set to false for a plugin specific directory or to true to get the shared configuration directory.

Informacja

While it may be possible to get a File instead of a Path, Configurate (and Sponge) recommend using Path.

Example - Field using @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;

Ostrzeżenie

Gdy twoja wtyczka jest uruchomiona po raz pierwszy, zwrócone nazwy ścieżek dla plików konfiguracyjnych i katalogów mogą jeszcze nie istnieć. Jeśli postanowisz delegować wszystkie pliki do odczytu / zapisu do konfiguracji, nie musisz się martwić o nieistniejące ścieżki, gdyż biblioteka odpowiednio je obsłuży.

Informacja

The use of YAML format (http://yaml.org/spec/1.1/) is also supported, but the preferred config format for Sponge plugins is HOCON. Conversion from YAML to HOCON can be automated by using a YAMLConfigurationLoader to load the old config and then saving it using a HoconConfigurationLoader.