Preguntas frecuentes
Lo que más surge al construir sobre la librería.
Un plugin no carga y dice que falta ExyliaLib
ExyliaLib.jar tiene que estar en plugins/ y declarada en depend en el plugin.yml del plugin. No
hay respaldo empaquetado a propósito: una sola copia instalada es todo el diseño.
Mi placeholder se ve en pantalla en vez de resolver
Tres causas habituales:
- Nada registró ese nombre —
Placeholders.unresolved(texto)lista lo que no respondió. - El nombre está bien pero el prefijo no: el nombre registrado es el prefijo del grupo, un guion bajo y el nombre de la entrada.
- Lo estás leyendo por PlaceholderAPI, donde el nombre del plugin va delante como identificador.
Un valor muestra {highlight} como texto en vez de colorear
Usaste with(), que es deliberado: inserta el valor como texto literal. withFormatted() es para
valores que escribió el dueño del servidor. Equivocarse al revés deja que un jugador llamado
<rainbow> recoloree tu mensaje.
Un placeholder de color en el nombre de un item no hace nada
name: "%name_color%&l%kit_name%" no puede funcionar. La sustitución ocurre sobre el árbol de
componentes ya parseado — un color a secas parsea a un componente vacío con un color, y ese color no
alcanza al texto de al lado. Pasa la frase coloreada entera, o usa una plantilla con nombre por estado.
El título del menú no cambia al pasar página
Eso necesita PacketEvents. Sin él el título se queda en la página en la que se abrió, y todo lo demás funciona con normalidad.
El menú no abre en absoluto
Casi siempre un size que no concuerda con el type. Un barril son siempre veintisiete slots diga lo
que diga size, y crear un inventario cuyo tamaño no concuerda con su tipo lanza antes de dibujar
nada.
Un botón no hace nada
Mira la consola de cuando se cargó el archivo: una acción que no existe compila a un botón muerto y una
línea reportada, y el resto del menú sigue funcionando. Mira también la condition del slot — un slot
cuya condición falla no está ahí en absoluto.
Mis ediciones de config se borraron tras actualizar
Una clave que ningún record declara se elimina al cargar y se reporta como UNKNOWN_KEY. Si una sección
cambió de forma entre versiones, hacía falta una migración — Migration.rename mueve un valor en vez de
dejar que el valor por defecto lo reemplace.
Todo revienta en Folia
Casi siempre una tarea en el hilo equivocado. Todo lo que va sobre un jugador pertenece a runAtEntity;
run es para el servidor entero. Es invisible en Paper y fatal en Folia.
Una llamada a la base de datos vuelve pero mi código corre en el hilo equivocado
Los futures se completan en un hilo del pool. Vuelve por tasks.runAtEntity(player, …) antes de tocar
al jugador o al mundo.
Dos plugins se pelean por el mismo jugador
Deberían estar usando Sessions. isFree
pregunta, claim decide de forma atómica, y el callback de liberación es cómo se le dice al dueño
actual que suelte.
La API de clanes no responde nada
Clans.isSupported() es false cuando no se detectó ningún plugin de clanes. La detección es por
reflexión, así que un plugin instalado cuya API no se pueda alcanzar se salta con un aviso en consola —
esa línea nombra también cuál se eligió.
Hologramas, nametags o esquemáticas no hacen nada
Cada módulo tiene un isSupported() y, donde tiene sentido, un unsupportedReason(). Hologramas y
nametags necesitan PacketEvents; las esquemáticas necesitan FastAsyncWorldEdit. No hacen nada en vez de
lanzar, y merece la pena comprobarlo en vez de darlo por supuesto.
¿Dónde pido soporte?
En el Discord de Exylia.
¿Falta algo en esta página? Dínoslo en Discord