Настройка плагинов

Файлы конфигурации позволяют плагинам хранить данные, а также позволяют администраторам сервера легко управлять конкретными частями плагина, если вы решите позволить им это. Sponge использует Configurate, чтобы вы могли легко манипулировать файлами конфигурации. На этих страницах объясняется, как задействовать Configurate, чтобы в полной мере использовать файлы конфигурации.

Совет

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

Примечание

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 Основы 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.

Начало

Создание конфигурации плагина по умолчанию

Плагины, использующие API Sponge, могут использовать один или несколько конфигурационных файлов. Конфигурационные файлы позволяют плагинам хранить какую-либо информацию, а также позволяют администраторам серверов настраивать параметры плагина (если это применимо).

Получение конфигурационного файла плагина по умолчанию

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.

Аннотация @DefaultConfig требует булевый (логический) параметр sharedRoot. Если sharedRoot равен true, то конфигурационный файл будет находиться в общей папке конфигурационных файлов. В этом случае название конфигурационного файла будет ID_плагина.conf (где «ID_плагина» - заданный ID плагина).

Совет

See Основной класс плагина for information on configuring your plugin ID.

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

Если есть сомнения, по поводу выбора значения sharedRoot для Вашего плагина, учитывайте следующее:

  • Если планируете, что конфигурационных файлов будет несколько (для большого плагина), задайте значение false.
  • Если планируете, что конфигурационный файл будет лишь один (простой плагин), задайте значение 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.

Примечание

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

Пример - Использование полей @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;

Предупреждение

When your plugin is running for the first time, returned pathnames for configuration files and directories may not yet exist. If you delegate all reading / writing of files to Configurate, you do not need to worry about non-existant paths as the library will handle them appropriately.

Примечание

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.