Class ParametroConfiguracion<E,T>
- java.lang.Object
-
- io.github.alextmjugador.khron.libconfig.ParametroConfiguracion<E,T>
-
- Type Parameters:
E
- El tipo del valor almacenado en memoria por este parámetro.T
- El tipo de valor almacenado en el fichero de configuración YAML para este parámetro.
- Direct Known Subclasses:
ParametroConfiguracionNotificado
,TextoHora
public abstract class ParametroConfiguracion<E,T> extends Object
Representa un parámetro de configuración de un plugin.- Author:
- AlexTMjugador
-
-
Field Summary
Fields Modifier and Type Field Description private String
id
La identificación de este parámetro de configuración en el comando para cambiarlo del getPlugin().private String
permiso
El nombre del permiso que un emisor de comandos necesitará tener, normalmente, para cambiar el parámetro.private org.bukkit.plugin.Plugin
plugin
El plugin al que pertenece este parámetro de configuración.private String
rutaConfiguracion
La ruta de este parámetro en el archivo de configuración del plugin.private E
valor
El valor que toma el parámetro de configuración.
-
Constructor Summary
Constructors Constructor Description ParametroConfiguracion(org.bukkit.plugin.Plugin plugin, String rutaConfiguracion, String id, String permiso)
Crea un nuevo parámetro de configuración con su plugin asociado, la ruta en el fichero de configuración, el nombre del argumento para el comando que permite cambiarlo y el permiso necesario para realizarle modificaciones.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description String
getId()
Obtiene la identificación de este parámetro de configuración en el comando para cambiarlo del plugin.String
getPermiso()
Obtiene el permiso que un emisor de comandos necesitará para cambiar el parámetro.org.bukkit.plugin.Plugin
getPlugin()
Obtiene el plugin asociado a este parámetro de configuración.String
getRutaConfiguracion()
Devuelve la ruta de este parámetro en el archivo de configuración del plugin.E
getValor()
Obtiene el valor al que está establecido este parámetro de configuración.protected T
getValorYaml()
Obtiene el valor tal y como se debe de guardar en un fichero de configuración YAML.void
leer()
Lee el valor guardado en la configuración del plugin para este parámetro, e inicializa el valor asociado a este parámetro de configuración a partir de lo leído desde el fichero de configuración.protected E
procesarValor(E nuevoValor)
Procesa el valor que se le pasa como parámetro, dejándolo listo para ser el valor guardado en las estructuras de datos internas del plugin.boolean
puedeCambiarlo(org.bukkit.command.CommandSender snd)
Comprueba si un emisor de comandos tiene permisos para modificar este parámetro de configuración.void
recargarConfiguracion()
Recarga los contenidos del fichero de configuración asociado a este parámetro de configuración desde memoria secundaria.boolean
setValor(E nuevoValor)
Establece el valor de este parámetro de configuración, si es válido.protected boolean
setValor(E nuevoValor, boolean guardarADisco)
Establece el valor de este parámetro de configuración, si es válido.abstract boolean
setValor(String nuevoValor)
Establece el valor de este parámetro de configuración, si es válido, convirtiéndolo antes deString
al tipo de dato que se use para almacenar el valor.boolean
valorValido()
Obtiene si el valor almacenado para este parámetro de configuración es válido.boolean
valorValido(E otroValor)
Obtiene si el valor especificado de este parámetro de configuración sería válido.
-
-
-
Field Detail
-
plugin
private final org.bukkit.plugin.Plugin plugin
El plugin al que pertenece este parámetro de configuración.
-
rutaConfiguracion
private final String rutaConfiguracion
La ruta de este parámetro en el archivo de configuración del plugin.
-
id
private final String id
La identificación de este parámetro de configuración en el comando para cambiarlo del getPlugin().
-
permiso
private final String permiso
El nombre del permiso que un emisor de comandos necesitará tener, normalmente, para cambiar el parámetro.
-
valor
private E valor
El valor que toma el parámetro de configuración.
-
-
Constructor Detail
-
ParametroConfiguracion
public ParametroConfiguracion(org.bukkit.plugin.Plugin plugin, String rutaConfiguracion, String id, String permiso) throws IllegalArgumentException
Crea un nuevo parámetro de configuración con su plugin asociado, la ruta en el fichero de configuración, el nombre del argumento para el comando que permite cambiarlo y el permiso necesario para realizarle modificaciones.- Parameters:
plugin
- El plugin al que pertenece este parámetro de configuración.rutaConfiguracion
- La ruta de este parámetro en el archivo de configuración del plugin.id
- La identificación de este parámetro de configuración en el comando para cambiarlo del plugin.permiso
- El nombre del permiso que un emisor de comandos necesitará tener para cambiar el parámetro.- Throws:
IllegalArgumentException
- Si alguno de los argumentosrutaConfiguracion
,nombreCodigo
ypermiso
es nulo.
-
-
Method Detail
-
puedeCambiarlo
public boolean puedeCambiarlo(org.bukkit.command.CommandSender snd)
Comprueba si un emisor de comandos tiene permisos para modificar este parámetro de configuración.- Parameters:
snd
- El emisor de comandos a comprobar.- Returns:
- Verdadero si el emisor de comandos especificado tiene permisos, falso en caso contrario.
-
valorValido
public final boolean valorValido()
Obtiene si el valor almacenado para este parámetro de configuración es válido.- Returns:
- Verdadero si el susodicho valor es válido, falso en caso contrario.
-
valorValido
public boolean valorValido(E otroValor)
Obtiene si el valor especificado de este parámetro de configuración sería válido.- Parameters:
otroValor
- El valor a comprobar.- Returns:
- Verdadero si el susodicho parámetro sería válido, falso en caso contrario.
-
getPlugin
public final org.bukkit.plugin.Plugin getPlugin()
Obtiene el plugin asociado a este parámetro de configuración.- Returns:
- El devandicho plugin.
-
getRutaConfiguracion
public final String getRutaConfiguracion()
Devuelve la ruta de este parámetro en el archivo de configuración del plugin.- Returns:
- La ruta de este parámetro en el archivo de configuración del plugin.
-
getId
public final String getId()
Obtiene la identificación de este parámetro de configuración en el comando para cambiarlo del plugin.- Returns:
- La devandicha identificación.
-
getPermiso
public final String getPermiso()
Obtiene el permiso que un emisor de comandos necesitará para cambiar el parámetro.- Returns:
- El susodicho permiso.
-
getValor
public final E getValor()
Obtiene el valor al que está establecido este parámetro de configuración.- Returns:
- El susodicho valor.
-
getValorYaml
protected T getValorYaml()
Obtiene el valor tal y como se debe de guardar en un fichero de configuración YAML.- Returns:
- El susodicho valor. La implementación predeterminada de este método asume que la clase del objeto a guardar en el fichero de configuración YAML es la misma o una superclase de la clase del valor en memoria.
-
recargarConfiguracion
public final void recargarConfiguracion()
Recarga los contenidos del fichero de configuración asociado a este parámetro de configuración desde memoria secundaria. Es útil llamar a este método antes deleer()
lo que se espera que sean nuevos valores para los parámetros de configuración.
-
leer
public void leer() throws IllegalArgumentException
Lee el valor guardado en la configuración del plugin para este parámetro, e inicializa el valor asociado a este parámetro de configuración a partir de lo leído desde el fichero de configuración. Cabe destacar que este método por si solo no recarga la configuración asociada al plugin en memoria por Paper.- Throws:
IllegalArgumentException
- Si el valor guardado en la configuración del plugin para este parámetro no es válido.
-
setValor
protected final boolean setValor(E nuevoValor, boolean guardarADisco)
Establece el valor de este parámetro de configuración, si es válido. Se utilizavalorValido()
para determinar la validez del nuevo valor, yprocesarValor(E)
para preprocesar el valor que tomará el atributo de la clase que lo almacena.- Parameters:
nuevoValor
- El valor a establecer.guardarADisco
- Verdadero si se debe de considerar la posibilidad de guardar el nuevo valor a memoria secundaria si ha cambiado, falso en caso contrario.- Returns:
- Verdadero si el nuevo valor se pudo establecer por ser válido, falso en caso contrario.
-
setValor
public final boolean setValor(E nuevoValor)
Establece el valor de este parámetro de configuración, si es válido. Se utilizavalorValido()
para determinar la validez del nuevo valor, yprocesarValor(E)
para preprocesar el valor que tomará el atributo de la clase que lo almacena. Si se trata de un nuevo valor diferente al anterior, se guardará el nuevo valor en el fichero de configuración del plugin.- Parameters:
nuevoValor
- El valor a establecer.- Returns:
- Verdadero si el nuevo valor se pudo establecer por ser válido, falso en caso contrario.
-
procesarValor
protected E procesarValor(E nuevoValor)
Procesa el valor que se le pasa como parámetro, dejándolo listo para ser el valor guardado en las estructuras de datos internas del plugin. Este método solo debe de ser llamado internamente desde su clase, no desde otras (las sobreescrituras de las subclases pueden asumir tal condición). Entonces, cuando es invocado, se ha garantizado quenuevoValor
es válido y diferente al actual, y el valor devuelto será asignado como nuevo valor del parámetro de configuración.- Parameters:
nuevoValor
- El valor a procesar.- Returns:
- El susodicho valor, procesado.
-
setValor
public abstract boolean setValor(String nuevoValor)
Establece el valor de este parámetro de configuración, si es válido, convirtiéndolo antes deString
al tipo de dato que se use para almacenar el valor. Se recomienda que las implementaciones utilicen setValor para establecer el valor tras la conversión que sea necesaria. Este método es usado para modificar el valor del parámetro de configuración a partir de lo especificado por un usuario en un comando.- Parameters:
nuevoValor
- El valor a establecer, como una cadena de texto que será convertida al tipo de dato usado.- Returns:
- Verdadero si el nuevo valor se pudo establecer por ser válido, falso en caso contrario.
-
-