Los archivos de la librería
plugins/ExyliaLib/config.yml y sus vecinos: idioma, actualizaciones, métricas, el editor web y qué guarda cada archivo.
Todo lo que el dueño del servidor ajusta de la librería vive en plugins/ExyliaLib/. Los archivos se
generan en el primer arranque, con un comentario encima de cada clave, y /exylialib reload relee la
mayoría sin reiniciar.
| Archivo | Qué guarda |
|---|---|
config.yml | Idioma, actualizaciones, depuración, estilo del texto, zona horaria, métricas, editor web, /settings, toasts, avisos, el registro del staff. |
colors.yml | La paleta compartida: {primary}, {success}, {letters} y el resto, que usan todos los plugins de Exylia. |
formats.yml | Cómo se escriben números, dinero, porcentajes y fechas. |
economy.yml | Qué economía usa el servidor. |
input.yml | Cómo pide la librería texto y números a los jugadores. |
displays.yml | Límites de lo que pueden costar los efectos de muerte, golpe y flecha, para todo el servidor. |
cleanup.yml | Borrar archivos viejos de la carpeta logs/ del servidor. |
lang/<código>/ | Los mensajes y pantallas propios de la librería en cada idioma. |
dumps/ | Lo que escriben /exylialib export y wipe. |
/exylialib reload relee config.yml, colors.yml, formats.yml, economy.yml, input.yml,
cleanup.yml y los archivos de idioma de la librería, y redibuja cada scoreboard, holograma e item con los
colores nuevos. displays.yml, metrics, logs.flush-seconds y el comando /settings necesitan
reiniciar. Nunca recarga los archivos de otro plugin: cada plugin tiene su propio comando de recarga, y el
database.yml de cada plugin vive en la carpeta de ese plugin.
config.yml
language: en
auto-update: true
update-check-minutes: 30
debug: false
small-text: true
text-shadow: auto:0.4
fallback-head: eyJ0ZXh0dXJlcyI6...
timezone: ''
ragdoll-skin-quality: normal
metrics:
enabled: true
plugin-updates:
enabled: true
majors: false
owners: [Exylia-Plugins, DiGround-s]
skip: []
web-editor:
enabled: true
url: https://utils.exylia.net
webhook-head: https://mc-heads.net/avatar/%uuid%/64
settings:
command:
enabled: false
name: settings
aliases: [preferences, options]
toasts:
fallback: action-bar
notices:
keep-days: 30
logs:
retention-days: 30
flush-seconds: 10
max-rows: 540
console-rows: 20
disabled: []| Clave | Por defecto | Qué hace |
|---|---|---|
language | en | El idioma de todo el servidor. Ver Idiomas. |
auto-update | true | Busca una ExyliaLib más nueva y la deja preparada para el próximo reinicio. |
update-check-minutes | 30 | Cada cuánto vuelve a mirar mientras el servidor corre. 0 deja solo las comprobaciones al arrancar y al apagar. Acepta 30m o 2h. |
debug | false | Enciende las líneas de detalle de todos los plugins de Exylia a la vez. |
small-text | true | Dibuja cada línea de cada plugin de Exylia en versalitas. Los valores que sustituye un plugin, como nombres de jugador y números, no se tocan. |
text-shadow | auto:0.4 | La sombra bajo cada línea: #rrggbb, #rrggbbaa, auto (un cuarto del color de cada letra, como vanilla), auto:0.4 (el 40 %), none, o vacío para lo que dibuje el cliente. Necesita 1.21.4 o superior. |
fallback-head | una cabeza neutra | La textura base64 de una cabeza que no tiene ninguna propia. |
timezone | vacío | La zona en la que se leen todos los horarios, como Europe/Madrid. Vacío es la de la máquina. |
ragdoll-skin-quality | normal | Lo fino que se cortan los cuerpos ragdoll: high (18 piezas), normal (10) o low (5). |
metrics.enabled | true | Ver Métricas. |
plugin-updates | activo | Ver Actualizar los demás plugins. |
web-editor.enabled | true | Si /exylialib editor puede abrir una sesión. Ver Editor web. |
web-editor.url | https://utils.exylia.net | Solo cámbialo para usar tu propia copia del editor. |
webhook-head | mc-heads.net | La imagen de la que sale la cabeza de un jugador en los webhooks de Discord; %uuid% es su id. |
settings.command | apagado | Registra /settings (y sus alias), la pantalla donde los jugadores ajustan las preferencias que registra cada plugin. Apagado por defecto porque un plugin puede abrir la misma pantalla desde su propio comando. Necesita reiniciar. |
toasts.fallback | action-bar | En qué se convierte un aviso de logro cuando no se puede dibujar: action-bar, title, chat o none. |
notices.keep-days | 30 | Cuánto espera un mensaje dejado a un jugador desconectado antes de borrarse sin leer. |
logs | — | El registro de auditoría del staff: días que se guarda (0 para siempre), segundos entre escrituras, filas por consulta y por respuesta de consola, y plugins o pares Plugin:acción que nunca se registran. Ver Comandos. |
Idiomas
Una clave fija el idioma de toda la red:
language: esLa librería trae en, es, pt, fr, ru y tr. Todo plugin de Exylia cuyo language propio sea
default — lo que escribe una instalación nueva — lo sigue, y también las pantallas y preguntas de la
propia librería. Poner un código en el language de un plugin lo cambia solo para ese plugin.
Cada idioma es una carpeta de archivos completos bajo lang/ en la carpeta de cada plugin:
plugins/ExyliaFFA/config.yml language: default
plugins/ExyliaFFA/lang/es/messages.yml
plugins/ExyliaFFA/lang/es/menus/...- El inglés es la base. Un archivo o una línea aún sin traducir llega igual, en inglés.
- Cualquier otro código es tuyo. Un código para el que no se trae nada (
de,custom, cualquiera con letras, dígitos,-y_) empieza en inglés y es del dueño para reescribirlo. - Los servidores anteriores a los idiomas conservan sus archivos. La primera vez que se pide un archivo
traducido, el que estaba en su sitio antiguo (
menus/,messages.yml) se mueve alang/custom/, y ellanguagedel plugin pasa acustom. - Cambiarlo surte efecto con la recarga de cada plugin; las líneas de la librería cambian con
/exylialib reload.
El texto fijo de los paneles de la librería se traduce con lang/<código>/phrases.yml: la línea en inglés
es la clave y la traducción su valor. Un archivo con esa forma en
plugins/ExyliaLib/lang/<código>/phrases.yml sobrescribe cualquier línea, y es la forma de añadir un idioma
que la librería no trae.
Duraciones
Donde se configura una duración se puede escribir en vez de dar un número suelto: 30s, 1m30s, 500ms,
40t (ticks), 2h, 2d, 1w, 1mo, 2.5h. Un número suelto sigue significando lo que siempre significó
para esa clave — segundos en una clave -seconds, ticks en el interval de un menú.
Actualizaciones
La propia librería
Con auto-update: true la librería busca en GitHub una versión más nueva al arrancar, cada
update-check-minutes y mientras el servidor se apaga. El jar nuevo se descarga, se verifica y se escribe
en plugins/update/, que el servidor aplica en el siguiente arranque. Una recarga nunca lo cambia: todos los
plugins están atados a la copia en marcha.
/exylialib update comprueba ahora mismo, diga lo que diga auto-update.
Actualizar los demás plugins
Las mismas pasadas mantienen al día los demás plugins de Exylia desde las releases de GitHub del
repositorio que cada uno nombra en su plugin.yml. Antes de preparar un jar:
- el dueño del repositorio tiene que estar en
plugin-updates.owners; - la release tiene que ser más nueva, y de la misma versión mayor salvo
majors: true— una versión mayor puede cambiar configs o comandos, así que por defecto solo se anuncia; - la descarga tiene que ser un jar del mismo plugin en la versión de la release;
- tiene que funcionar con la ExyliaLib que habrá tras reiniciar; una que necesite una librería más nueva espera a que la librería la alcance.
plugin-updates.skip lista plugins que nunca se actualizan. /exylialib plugins comprueba ahora, y a un
admin con exylialib.admin se le avisa al entrar cuando hay actualizaciones esperando un reinicio.
Actualizarlo todo cuesta un solo reinicio.
Valores por defecto cambiados
Una actualización añade sola las claves nuevas a cada archivo: nadie puede haber elegido algo que no
existía. Un valor por defecto cambiado es distinto — un valor aún igual a su defecto antiguo puede ser
justo el que quiere el dueño — así que nunca se reescribe en silencio. Espera en /exylialib updates:
- Una clave que cambiaste es tuya y nunca se lista.
- Una clave aún en el defecto antiguo cuyo defecto cambió o desapareció se lista, con el valor actual y el nuevo.
- Un menú o catálogo cuya estructura cambió demasiado para fusionarse (el plugin subió su
menu-version) se reemplaza al momento si nadie lo tocó. Si está editado, espera como un solo cambio; aplicarlo reemplaza el archivo y guarda el tuyo como<nombre>.v<versión antigua>.
Para un jugador, /exylialib updates abre un menú: plugins, luego sus archivos, luego cada cambio. En un
cambio, clic izquierdo aplica y clic derecho conserva. En un plugin o un archivo, shift-izquierdo lo aplica
todo y shift-derecho lo conserva todo. La consola recibe la misma lista como texto, con
/exylialib updates apply <número|plugin|all> y /exylialib updates keep <número|plugin|all>.
Aplicar escribe el defecto nuevo y recarga aquello a lo que pertenece el archivo, así que queda activo al
momento. Conservar lo marca como revisado y deja tu valor. Un archivo editado a mano después de mostrar la
lista se deja en paz y se informa como desactualizado. Los cambios pendientes se anuncian una vez en la
consola tras arrancar, y al entrar a quien tenga exylialib.updates.
En .defaults/ dentro de la carpeta de cada plugin. En un servidor anterior a esto no hay nada revisado,
así que todo valor que ya estaba cuenta como tuyo y nada se lista en el primer arranque.
Métricas
Con metrics.enabled: true la librería informa a stats.exylia.net, más o menos cada media hora:
- el software y la versión del servidor, versiones de Minecraft y Java, sistema operativo, núcleos, memoria y heap en uso, número de hilos, jugadores conectados y máximos, modo online, y si está detrás de un proxy;
- los nombres y versiones de los plugins instalados, enviados de nuevo solo cuando la lista cambia;
- cómo están configurados los plugins de Exylia, según se describe cada uno (cantidad de eventos, tamaño de regiones);
- los errores que lanzan los plugins de Exylia, agrupados.
Ningún nombre, id ni dirección IP de jugadores, ni nada que haya escrito un jugador. El servidor se
identifica con un id aleatorio en metrics-id.txt. Solo cuentan las builds de release de los plugins de
Exylia: un servidor sin ninguno no envía nada, y una build de desarrollo tampoco. enabled: false no envía
nada, nunca.
Limpieza
logs:
enabled: true
keep-days: 7Borra los archivos de la carpeta logs/ del servidor más viejos que keep-days, un minuto después de
arrancar y cada seis horas. El log que se está escribiendo y lo que no es un archivo de log nunca se tocan.
Apágalo si otra cosa ya los rota.
¿Falta algo en esta página? Dínoslo en Discord