Instalación
Los jars, los archivos que escribe y las dos tablas que usa.
Instalar
Pon los jars
ExyliaEmotes.jar y packetevents en plugins/. packetevents es una dependencia dura: sin él
el plugin no carga. ExyliaLib es una dependencia blanda — el loader lo instala en el primer
arranque si no está.
Arranca el servidor
Escribe config.yml, messages.yml, emotes.yml, los tres archivos de menus/ y
database.yml, y crea su tabla.
Concede los permisos
No se puede usar nada hasta que los jugadores puedan abrir el menú y tengan al menos un emote. Ver Permisos.
Fija un escenario de previsualización
Clic derecho en un emote del menú lo previsualiza, y una instalación nueva no tiene dónde hacerlo.
Ponte donde deban verse las previsualizaciones y ejecuta /emotesadmin preview location.
Archivos
| Archivo | Contenido |
|---|---|
config.yml | Comportamiento, la cámara, los duetos, los textos del menú, las rarezas, la caja, el objeto llave, el escenario de previsualización, los showcases, el feedback y los valores de reserva de los placeholders. |
messages.yml | Cada línea que envía el plugin, y el prefijo. |
emotes.yml | Las cuatro pestañas y los 68 emotes. Escrito a mano, no gestionado por esquema: tus comentarios y tu formato sobreviven a una recarga. |
menus/emotes.yml | La pantalla principal: pestañas, cuadrícula, plantillas y botones. |
menus/crate.yml | La primera pantalla de la caja: cuántas abrir a la vez. |
menus/crate_open.yml | Los rodillos cayendo, una columna por caja. |
database.yml | Dónde se guardan las filas. |
config.yml y messages.yml se escriben desde un esquema, así que una clave desconocida se descarta y
los comentarios se regeneran. emotes.yml no: se lee tal cual está escrito. En cada arranque y recarga
se compara con el del jar — un emote que añade una actualización se escribe en tu archivo, y lo que tú
cambiaste o borraste se deja en paz.
Los archivos de menú siguen la misma regla. Cuando una versión tiene que cambiar el diseño de un menú,
sube menu-version al principio del archivo; entonces el archivo se reemplaza y el tuyo anterior se
guarda al lado.
Las tablas
emotes_players
La tabla propia de este plugin, una fila por jugador:
| Columna | Qué guarda |
|---|---|
uuid | El jugador. |
name | Su último nombre conocido. |
favourites | Los emotes que marcó, separados por comas, en su propio orden. |
unlocked | Lo que había desbloqueado la caja antigua del plugin. Se lee una vez y no se vuelve a escribir. |
crate_keys | Las llaves que tenía la caja antigua del plugin. Se lee una vez y no se vuelve a escribir. |
created_at / updated_at | Cuándo se creó la fila y cuándo se escribió por última vez. |
La fila de un jugador nuevo solo se guarda en memoria hasta que se escribe algo en ella, como su primer favorito.
Un id marcado que el catálogo ya no declara se conserva en la columna y se descarta al dibujarlo, así que una errata en una recarga no vacía la lista de nadie.
exylia_crate_players
Las llaves y los desbloqueos viven en la tabla de cajas de ExyliaLib, una fila por jugador y por
plugin. La primera vez que se ve a un jugador ahí, su fila se siembra a partir de emotes_players:
Lo que emotes_players tiene de él | Con qué empieza su fila de la caja |
|---|---|
| Ninguna fila | crate.start-keys llaves y nada desbloqueado — un recién llegado. |
| Una fila | Sus crate_keys y su unlocked, tal cual, aunque estén vacíos. |
Así que actualizar desde una versión que tenía su propia caja se lleva todas las llaves y todos los desbloqueos. Las columnas antiguas no se vuelven a escribir, así que una vuelta atrás las encuentra como estaban. Las llaves en forma de objeto que ya están en los inventarios siguen abriendo la caja.
Actualizar
Cambia el jar y reinicia. /emotesadmin reload vuelve a leer config.yml, messages.yml,
emotes.yml y los menús, reconstruye la caja y reinicia los showcases sin tocar el resto del servidor
— a propósito no recarga la librería, que es para lo que está /exylialib reload.
El tempo aleatorio de los emotes sin fin necesita ExyliaLib 1.177.0 o superior, y la caja 1.190.0 o superior. El loader instala la versión más nueva, así que solo importa en un servidor que fije una anterior.
¿Falta algo en esta página? Dínoslo en Discord