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.
Adnotacja @DefaultConfig
wymaga parametru boolean sharedRoot
. Jeśli ustawisz sharedRoot
na true
, zwrócona nazwa ścieżki będzie wskazywać na współdzielony katalog konfiugracyjny. W takim przypadku plik konfiguracyjny dla twojego pluginu będzie nazywał się your_plugin_id.conf
(gdzie „your_plugin_id” zastąpiony będzie identyfikatorem Twojego pluginu).
Wskazówka
Zobacz Główna Klasa Pluginu w celu uzyskania informacji dotyczących konfigurowania ID twojego pluginu.
Jeśli ustawisz sharedRoot
na false
, zwrócona ścieżka będzie odnosić się do pliku o nazwie {pluginname}.conf
w odosobnionym katalogu dla twojego pluginu.
Jeśli nie jesteś pewien jaką wartość ustawić dla sharedRoot
, weź pod uwagę:
Jeśli planujesz mieć wiele plików konfiguracyjnych w przyszłości (w przypadku skomplikowanych pluginów), ustaw wartość na
false
.Jeśli planujesz mieć jeden plik konfiguracyjny (w przypadku mniej skomplikowanych pluginów), ustaw wartość na
true
.
Możesz również uzyskać instancję Path
wskazującą na katalog konfiguracyjny zamiast na konkretny plik. Wystarczy że wstrzykniesz ścieżkę używając adnotacji ConfigDir. Parametr sharedRoot
ustawiony na false
da Ci ścieżkę konkretnego katalogu pluginu a ustawiony na true
da Ci współdzielony katalog konfiguracyjny.
Informacja
Mimo że możliwym jest otrzymanie obiektu File
zamiast Path
, Configurate (i Sponge) rekomenduje używanie Path
.
Przykład - Użycie na polu @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.