Contenido generado con IA — puede contener errores.

Referencia

Placeholders

El identificador, las tres notaciones, todos los nombres a los que responde, y qué le pasa a una cabeza al salir.

Los placeholders se registran a través del módulo de placeholders de ExyliaLib, así que funcionan solos en cualquier texto de ExyliaLib, y en cualquier otro plugin en cuanto instalas PlaceholderAPI. Hay un solo identificador, y de él cuelgan todos los nombres de abajo:

%exyliachatcosmetics_<nombre>%

Las tres notaciones

Algunos placeholders devuelven algo dibujado en vez de una palabra, y lo dibujado tiene que convertirse en texto antes de que un formato de chat pueda llevarlo. Qué texto depende de quién pregunta, así que cada uno viene en tres grafías salidas del mismo componente — un color nunca se dibuja dos veces.

SufijoSalidaÚsalo cuando
(ninguno)MiniMessage — <#ffd700>[MVP]</#ffd700>tu plugin de chat interpreta MiniMessage. Es el que va por defecto.
_legacycódigos &, con &#rrggbb para el hextu plugin de chat sigue leyendo códigos &
_sectioncódigos §, con la forma hex §x§r§r…tu plugin de chat manda la cadena tal cual al cliente

Los serializadores legacy de aquí están construidos con soporte hex a propósito. Los de serie bajan un color hex al más cercano de los dieciséis con nombre, que es lo que convierte un degradado en un &6 plano.

Una cabeza solo sobrevive en la notación MiniMessage

Una etiqueta dibujada con una skin de cabeza — una bandera, una cara que hizo alguien — es un componente de objeto que lleva una propiedad de perfil, y ninguna de las dos notaciones legacy tiene dónde meter eso. En _legacy y _section la cabeza sencillamente no está; lo demás que dibuje la etiqueta sí.

En la notación MiniMessage sobrevive, escrita como <ecc_head:'…'> — una etiqueta que este plugin le añade a MiniMessage justo para esto, y que vuelve a leer a la entrada. El único caso en que no puede sobrevivir es una cabeza que llega al serializador con la skin ya perdida: MiniMessage la escribiría como un <head> pelado, que a quien lo lea le dibuja una cara por defecto, así que se quita. La cara de un desconocido al lado del nombre de alguien es peor que ninguna cara.

Texto dibujado

Cada uno de estos dibuja un componente, así que existe en las tres notaciones, y cada una de las tres es un placeholder por derecho propio:

PlaceholderValor
%exyliachatcosmetics_tag%la etiqueta puesta, con el format a su alrededor — normalmente un espacio final. Una etiqueta propia gana a una del catálogo.
%exyliachatcosmetics_tag_legacy%la misma etiqueta, escrita en códigos &
%exyliachatcosmetics_tag_section%la misma etiqueta, escrita en códigos §
%exyliachatcosmetics_customtag%solo una etiqueta que el jugador se escribió; vacío si lo que lleva viene del catálogo
%exyliachatcosmetics_customtag_legacy%la misma etiqueta, escrita en códigos &
%exyliachatcosmetics_customtag_section%la misma etiqueta, escrita en códigos §
%exyliachatcosmetics_nick%el nombre del jugador en su color de nick
%exyliachatcosmetics_nick_legacy%el mismo nombre, escrito en códigos &
%exyliachatcosmetics_nick_section%el mismo nombre, escrito en códigos §
%exyliachatcosmetics_identity%la etiqueta seguida del nombre
%exyliachatcosmetics_identity_legacy%las dos juntas, escritas en códigos &
%exyliachatcosmetics_identity_section%las dos juntas, escritas en códigos §
%exyliachatcosmetics_rank_prefix%el prefijo del rango, repintado con el color de rango puesto
%exyliachatcosmetics_rank_prefix_legacy%el mismo prefijo, escrito en códigos &
%exyliachatcosmetics_rank_prefix_section%el mismo prefijo, escrito en códigos §
%exyliachatcosmetics_rank_suffix%el sufijo del rango, repintado con el color de rango puesto
%exyliachatcosmetics_rank_suffix_legacy%el mismo sufijo, escrito en códigos &
%exyliachatcosmetics_rank_suffix_section%el mismo sufijo, escrito en códigos §

Cada uno queda vacío cuando no lleva nada puesto, o sea, con el valor de placeholders.none — vacío por defecto — o con el fallback que escribas.

Valores

Estos son palabras y números sin más, sin notaciones.

PlaceholderValor
%exyliachatcosmetics_tag_id%el id de la etiqueta puesta
%exyliachatcosmetics_tag_name%el nombre visible de la etiqueta puesta
%exyliachatcosmetics_nick_color%el color efectivo del nombre, como #rrggbb o #a:#b:#c
%exyliachatcosmetics_rank_color%el color con el que se pintan el prefijo y el sufijo
%exyliachatcosmetics_rank_id%el id del color de rango del catálogo que lleva puesto
%exyliachatcosmetics_chat_color%el color efectivo del mensaje: un color propio, si no un color de chat, si no chat.default-color
%exyliachatcosmetics_chat_color_id%el id de aquel de ellos del que salió
%exyliachatcosmetics_font%el id de la fuente puesta
%exyliachatcosmetics_font_name%el nombre visible de la fuente puesta
%exyliachatcosmetics_modifiers%los ids de los modificadores puestos, separados por comas
%exyliachatcosmetics_favorites_count%cuántos cosméticos tiene marcados con estrella
%exyliachatcosmetics_loadout%el nombre del último loadout que aplicó

Valores que llevan un argumento

Cuatro de ellos se escriben con algo tuyo en medio — un tipo, o una clave tipo:id.

PlaceholderValorEscrito entero
%exyliachatcosmetics_equipped_<tipo>%el id que lleva puesto de ese tipo%exyliachatcosmetics_equipped_chat_color%
%exyliachatcosmetics_tokens_<tipo>_<kind>%un saldo de tokens%exyliachatcosmetics_tokens_customtag_create%, %exyliachatcosmetics_tokens_customcolor_edit%
%exyliachatcosmetics_owns_<tipo:id>%true o false%exyliachatcosmetics_owns_tag:mvp%
%exyliachatcosmetics_expires_<tipo:id>%permanent, el tiempo que queda en forma compacta (13d 4h), o placeholders.none si no lo posee%exyliachatcosmetics_expires_tag:mvp%

Un nombre al que no responde nada devuelve placeholders.unknown, ? por defecto. Tanto ese como placeholders.none son tuyos y se cambian en config.yml.

Guiones bajos en un argumento

Tanto un tipo (chat_color) como un id (my_tag) pueden llevar un guion bajo, y la librería parte los argumentos por los guiones bajos. Se vuelven a juntar antes de leerlos, así que %exyliachatcosmetics_equipped_chat_color% y %exyliachatcosmetics_owns_tag:my_tag% significan lo que parece.

Fallbacks

La sintaxis de fallback de ExyliaLib funciona en todos: lo que va detrás del | es lo que dibuja el placeholder cuando no tiene valor.

%exyliachatcosmetics_tag|%          nada en absoluto cuando no lleva etiqueta
%exyliachatcosmetics_loadout|none%  la palabra "none" cuando no aplicó ningún loadout

Los sufijos de formato de ExyliaLib — :upper y los demás — funcionan sobre los placeholders de valor.

En un formato de chat

Un plugin de chat basado en renderer, que lee MiniMessage:

%exyliachatcosmetics_tag%%exyliachatcosmetics_nick%<gray>: <white>%message%

Un plugin de chat que todavía compone una cadena legacy:

%exyliachatcosmetics_tag_section%%exyliachatcosmetics_nick_section%§7: §f%message%

En los dos, %message% sigue siendo lo que ponga ahí tu plugin de chat. El cuerpo del mensaje lo colorea el hook de chat, no un placeholder — un placeholder no puede meterse dentro de una cadena que ya construyó otro. Si prefieres que el plugin componga la línea entera, eso es el módulo de chat.

Hilos

Todos los resolutores se registran como seguros en asíncrono y leen solo estado cacheado: aquí nada toca la API de Bukkit más allá del jugador que se les pasa, así que se les puede preguntar desde el hilo del chat sin saltar al principal. Un jugador cuyo perfil todavía no ha terminado de cargar responde como si no llevara nada, en vez de bloquear para esperarlo.

¿Falta algo en esta página? Dínoslo en Discord