Contenido generado con IA — puede contener errores.

Empezar

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.

ArchivoQué guarda
config.ymlIdioma, actualizaciones, depuración, estilo del texto, zona horaria, métricas, editor web, /settings, toasts, avisos, el registro del staff.
colors.ymlLa paleta compartida: {primary}, {success}, {letters} y el resto, que usan todos los plugins de Exylia.
formats.ymlCómo se escriben números, dinero, porcentajes y fechas.
economy.ymlQué economía usa el servidor.
input.ymlCómo pide la librería texto y números a los jugadores.
displays.ymlLímites de lo que pueden costar los efectos de muerte, golpe y flecha, para todo el servidor.
cleanup.ymlBorrar 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.
Qué cubre una recarga

/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

plugins/ExyliaLib/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: []
ClavePor defectoQué hace
languageenEl idioma de todo el servidor. Ver Idiomas.
auto-updatetrueBusca una ExyliaLib más nueva y la deja preparada para el próximo reinicio.
update-check-minutes30Cada cuánto vuelve a mirar mientras el servidor corre. 0 deja solo las comprobaciones al arrancar y al apagar. Acepta 30m o 2h.
debugfalseEnciende las líneas de detalle de todos los plugins de Exylia a la vez.
small-texttrueDibuja 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-shadowauto:0.4La 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-headuna cabeza neutraLa textura base64 de una cabeza que no tiene ninguna propia.
timezonevacíoLa zona en la que se leen todos los horarios, como Europe/Madrid. Vacío es la de la máquina.
ragdoll-skin-qualitynormalLo fino que se cortan los cuerpos ragdoll: high (18 piezas), normal (10) o low (5).
metrics.enabledtrueVer Métricas.
plugin-updatesactivoVer Actualizar los demás plugins.
web-editor.enabledtrueSi /exylialib editor puede abrir una sesión. Ver Editor web.
web-editor.urlhttps://utils.exylia.netSolo cámbialo para usar tu propia copia del editor.
webhook-headmc-heads.netLa imagen de la que sale la cabeza de un jugador en los webhooks de Discord; %uuid% es su id.
settings.commandapagadoRegistra /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.fallbackaction-barEn qué se convierte un aviso de logro cuando no se puede dibujar: action-bar, title, chat o none.
notices.keep-days30Cuá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: es

La 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 a lang/custom/, y el language del plugin pasa a custom.
  • 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.

Dónde viven los defectos revisados

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

plugins/ExyliaLib/cleanup.yml
logs:
  enabled: true
  keep-days: 7

Borra 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