Preguntas frecuentes
Las preguntas que más se repiten.
No se ve nada en el chat
Casi siempre es que el hook no corresponde al plugin de chat que de verdad tienes. chat.hook decide
cómo se estiliza el cuerpo del mensaje, y el modo equivocado es un modo que no se dispara nunca.
decorate es el correcto para el chat propio de Paper y para cualquier cosa que dibuje a través de
AsyncChatEvent; un plugin que lee message() pero ignora la decoración quiere chat_event a una
prioridad por debajo de la suya; un plugin que sigue en AsyncPlayerChatEvent quiere legacy_event.
La tabla de Integraciones empareja cada caso.
La etiqueta y el nombre coloreado son otra cosa: esos no se inyectan por ti. Si el mensaje sale
coloreado pero no hay etiqueta delante del nombre, es que todavía no has puesto
%exyliachatcosmetics_tag% y %exyliachatcosmetics_nick% en el formato de tu plugin de chat.
Las etiquetas salen como la palabra con la que están escritas
Los sprites, las partículas y las cabezas de las etiquetas son object components, que llegaron en Minecraft 1.21.9. Un cliente más antiguo no tiene nada que dibujar, así que muestra la etiqueta como el texto con el que está escrita en lugar de fallar — por eso las pestañas ANIMATED, PARTICLES, ICONS, INTERFACE y FLAGS se leen como palabras en un cliente viejo y la pestaña SYMBOLS no. Los colores, las fuentes, las sombras y el módulo de chat entero funcionan en 1.21 exactamente igual que en la última versión.
Hay jugadores que nunca ven ciertos mensajes
Eso es el chat seguro. Cualquier cambio en el cuerpo de un mensaje — y un color es un cambio — lo
marca como modificado para un cliente vanilla, y un cliente con Only Show Secure Chat activado
oculta un mensaje modificado. Le llega igual; el cliente se niega a dibujarlo. Todos los plugins de
color de chat del mercado tienen esta propiedad. Poner enforce-secure-profile=false en
server.properties es la respuesta habitual.
Los colores de rango no hacen nada
Dos causas. Los colores de rango repintan el prefijo y el sufijo que escribe tu plugin de permisos, y
ese meta viene de LuckPerms — sin él no hay nada que repintar, {prefix} y {suffix} no dibujan
nada y la pantalla de colores de rango queda vacía. Los otros cinco tipos de cosmético no se ven
afectados.
Si LuckPerms está y el color sigue saliendo raro, es rank-colors.repaint. El valor por defecto,
letters, pinta solo letras y dígitos, así que &8[&eVIP&8] conserva sus corchetes grises y
cualquier símbolo que escriba el rango conserva su propio color. all pinta todo lo que escribió el
rango, corchetes incluidos.
Un jugador conservó un cosmético tras perder el rango que se lo daba
Como mucho un momento, y solo sin LuckPerms. Las respuestas de permisos se memorizan por perfil para
que dibujar una línea de chat no se acerque nunca al plugin de permisos. Con LuckPerms instalado,
UserDataRecalculateEvent tira ese memo y la caché de dibujado en el instante en que cambia un
rango, y la siguiente línea que envíe se dibuja con lo que posee ahora, sin reconectar. Sin LuckPerms
el memo se refresca al entrar, con /cca reload y en el barrido de treinta segundos.
Lo que no pasa nunca es que el cosmético se borre de su fila. Equipado y poseído son preguntas separadas; un cosmético que alguien ya no posee simplemente deja de dibujarse, y vuelve el día en que sea suyo otra vez. Es a propósito: si no, un plugin de permisos todavía cargando al entrar borraría lo que alguien pagó.
Revoqué una concesión y no desapareció al momento
La posesión se pregunta allá donde se dibuje una línea, así que una concesión revocada deja de contar
en el chat de inmediato. Lo que espera es el aviso y el desequipado automático: un barrido recorre
los perfiles conectados cada treinta segundos, porque una concesión que se acabó solo merece
contársela a quien está aquí. EntitlementExpiredEvent, el mensaje expired y quitar el cosmético
van todos en ese barrido, así que llegan poco después del momento y no exactamente en él. La
concesión de un jugador desconectado no necesita barrido alguno: simplemente está inactiva la próxima
vez que se lea.
El módulo de chat no arranca
El módulo de chat necesita Paper. Los cosméticos no — en Spigot funcionan por legacy_event, y
decorate o chat_event caen a él con un aviso al arrancar — pero el módulo en sí está construido
sobre los eventos de chat de Paper y no tiene camino en Spigot. Ahí deja chat.module.enabled
apagado y usa el hook con el plugin de chat que ya tengas.
Si el módulo falla por cualquier otra razón, la consola dice
The built-in chat could not start; cosmetics keep working through the chat hook. y el hook se
reinstala. Un archivo de chat que no se puede leer no debe costarle a un servidor sus cosméticos.
¿Cómo le doy a alguien una pestaña entera?
exyliachatcosmetics.<type>.category.<category> — así
exyliachatcosmetics.chat_color.category.premium es toda la pestaña premium de colores de chat, y
exyliachatcosmetics.tag.category.flags son todas las banderas. exyliachatcosmetics.<type>.* es
todo lo de un tipo, y exyliachatcosmetics.* es todo. Esa es la diferencia entre vender un rango y
vender un cosmético: un nodo contra cien concesiones.
Los colores de rango son la excepción. Vienen con permission: false y se poseen por estar en uno de
los grupos que nombra la entrada, así que un jugador en vip lleva el color VIP sin ningún nodo.
Borrar una etiqueta personalizada no devolvió el token
Es a propósito. A un jugador no lo limita cuántos cosméticos personalizados tiene, sino cuántos le
dieron derecho a hacer: un token create paga cada nuevo y un token edit cada cambio, y borrar no
devuelve nada. A quien le dan tres creaciones hace tres, y la cuarta cuesta otro token por muchos que
borre en medio. Ver Tokens.
El hover de una etiqueta se come el resto de la línea
Ejecuta /cca chat line [mensaje]. Dibuja tu propia línea de chat y la parte en los tramos que
comparten un hover y un click, tal y como los lee de verdad un cliente: cada carácter arrastra el
estilo de sus ancestros, así que un hover puesto en un padre alcanza a todos los hijos que hay
debajo. Cada tramo se imprime como [texto] hover …, click …, a la consola y a ti, y ahí se ve la
pieza cuyo hover se traga la siguiente en vez de adivinarla desde una captura. Hace falta que el
módulo esté encendido.
Los jugadores escriben &c y sale como texto
Eso es chat.sanitize, activo por defecto: el &c, el <red> o el {primary} de un jugador se
muestra como lo que escribió en lugar de obedecerse, para que nadie pinte su línea de un color que
nunca compró. Dale exyliachatcosmetics.chat.format a la gente en quien confíes. El § se
neutraliza siempre, esté la opción como esté y tenga el jugador el permiso que tenga.
¿Funciona en Spigot? ¿Y en Folia?
Spigot ejecuta los cosméticos por el hook legacy — todo lo de etiquetas, colores, fuentes y animaciones funciona — pero no el módulo de chat. Folia está soportado por completo y escrito para ello, no simplemente tolerado: las escrituras de perfil y el disparo de eventos caen en la región propia del jugador, el reloj de las animaciones y el barrido de caducidad corren en asíncrono, y el dibujado del chat y de los placeholders solo lee memoria.
¿Necesito PlaceholderAPI?
Solo si un plugin de fuera del ecosistema de Exylia tiene que leer los placeholders. Están
registrados en el módulo de placeholders de ExyliaLib y funcionan en cualquier texto de ExyliaLib sin
PAPI; cuando PAPI está instalado, ExyliaLib los puentea todos automáticamente bajo
%exyliachatcosmetics_<nombre>%. No hay ninguna expansión que descargar.
¿Dónde consigo soporte?
En el Discord de Exylia.
¿Falta algo en esta página? Dínoslo en Discord