Configurando Extensiones
Advertencia
These docs were written for SpongeAPI 7 and are likely out of date. If you feel like you can help update them, please submit a PR!
Los archivos de configuración les permiten a las extensiones almacenar datos, así como permiten a los administradores de servidor tomar fácilmente el control de determinadas partes de una extensión, si decides dejar que lo hagan. Sponge utiliza Configurate para que puedas manipular fácilmente los archivos de configuración. Estas páginas te explicarán cómo utilizar Configurate para utilizar los archivos de configuración al máximo.
Truco
See the official Configurate wiki to gain more in-depth information about working with its components.
Nota
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 Introducción a 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.
Inicio Rápido
Creando una Configuración de Extensión por Defecto
Plugins using SpongeAPI 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).
Creando tu Configuración de Extensión por Defecto
SpongeAPI 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.
If you place the @DefaultConfig
annotation on a field with the type
ConfigurationLoader<CommentedConfigurationNode>
then you can use it to load and save the default config file in
the file system. Please keep in mind that the annotated ConfigurationLoader
does not use any default config file
that you might ship with your jar, unless you explicitly load it.
La anotación @DefaultConfig
requiere un sharedRoot
booleano. Si configuras un``sharedRoot`` a true
, entonces el nombre de ruta devuelto estará en un directorio de configuración compartida. En ese caso, el archivo de configuración de tu extensión será your_plugin_id.conf
(con «your_plugin_id» reemplazado con el ID especificado de tu extension).
Truco
Ve Clase de Plug-in Principal para mas información en la configuración de tu ID de extensión.
Si estableces sharedRoot
a false
, el nombre de ruta retornado se referirá a un archivo llamado ``{pluginname}.conf` en un directorio especifico a tu extensión.
Si no estas seguro de a que establecer el valor de sharedRoot
, considera lo siguiente:
Si planeas tener múltiples archivos de configuración (extensiones complejas) en el futuro, establece el valor a
false
.Si planeas tener un solo archivo de configuración (extensiones menos complejas), configura el valor a
true
.
También puedes obtener una instancia de Path``apuntando al directorio config en lugar de a un archivo determinado. Sólo lo tienen inyectado mediante la anotación 'ConfigDir' :javadoc:, ya sea con ``sharedRoot
establecido a false
para un directorio específico o true
para obtener el directorio de configuración compartida.
Nota
Mientras que es posible obtener un File
en vez de un Path
, Configurate (y Sponge) recomiendan utilizar Path
.
Ejemplo - Campo usando @DefaultConfig
import java.nio.file.Path;
import com.google.inject.Inject;
import org.spongepowered.api.config.ConfigDir;
import org.spongepowered.api.config.DefaultConfig;
import org.spongepowered.configurate.CommentedConfigurationNode;
import org.spongepowered.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;
Advertencia
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-existent paths as the library will handle them appropriately.
Nota
The use of YAML format (https://yaml.org/spec/1.1/) and JSON format (https://www.json.org/) is also supported, but the preferred config format for Sponge plugins is HOCON. Conversion from YAML (or JSON) to HOCON can be automated by using a YAMLConfigurationLoader (or GsonConfigurationLoader) to load the old config and then saving it using a HoconConfigurationLoader.