Konfigurere plugins

Configuration files allow plugins to store data, as well as allow server administrators to easily take control over specific portions of a plugin, if you so choose to let them. Sponge uses Configurate to allow you to easily manipulate configuration files. These pages will explain how to utilize Configurate in order to use configuration files to full advantage.

Tips

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

Obs

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 Introduksjon til 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.

Hurtigstart

Creating a Default Plugin Configuration

Plugins/programtillegg som bruker Sponge API-et har muligheten til å bruke en eller flere konfigurasjonsfiler. Konfigurasjonsfilene tillater plugins/programtillegg å lagre data, og de tillater serveradministratorer å tilpasse plugin/porgramtilleggets alternativ (hvis aktuelt).

Å få din standard Pluginkonfigurasjon

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 merknaden krever en sharedRoot boolean. Hvis du setter sharedRoot til true, vil det returnerte banenavnet bli i en delt konfigurasjonskatalog. I det tilfellet, vil konfigurasjonsfilen for din plugin være din_plugin_id.conf (med «your_plugin_id» byttet ut med din plugins angitte ID).

Tips

See Main Plugin Class 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.

Hvis du er usikker på hva du skal sette verdien av ``sharedRoot` til, vurder følgende:

  • Hvis du planlegger å ha flere konfigurasjonsfiler (komplekse plugins) i fremtiden, set verdien til false.

  • Hvis du planlegger å ha en enkelt konfigurasjonsfil (mindre komplekse plugins), sett verdien til 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.

Obs

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

Eksempel - Bruk av felt @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;

Advarsel

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.

Obs

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.