Saltar al contenido principal

Componente de chat

El class ChatComponent contiene multiples métodos utiles para manejar cosas relacionadas con el chat.

Conversión

Con el class ChatComponent puedes convertir strings (en formato json) en componentes de chat y viceversa.

// En component
Object component = ChatComponent.fromJson("{\"bold\":true,\"italic\":false,\"color\":\"dark_purple\",\"text\":\"Colored text!\"}");
Object sameComponent = ChatComponent.fromString("§5§lColored text!");

// Desde component
String json = ChatComponent.toJson(component);
String string = ChatComponent.toString(component);

// Compatibilidad cruzada
String json = ChatComponent.toJson("§5§lColored text!");
String string = ChatComponent.toString("{\"bold\":true,\"italic\":false,\"color\":\"dark_purple\",\"text\":\"Colored text!\"}");

Formato mejorado para nbt

Dale un formato mejorado (pretty format) a cualquier objeto nbt en una o múltiples líneas separadas por \n usando una paleta de color:

  • NBT_PALETTE - La paleta de color por defecto como el comando /data de Minecraft ([ "§f", "§b", "§a", "§6", "§c" ]).
  • NBT_PALETTE_HEX - Paleta de color modificada para Bukkit 1.16 o superior utilizando un formato hexadecimal para colores como §#RRGGBB.
  • NBT_PALETTE_BUNGEE - Paleta de color modificada para Bukkit 1.16 o superior utilizando el formato hexadecimal del chat de bungeecord para colores como §x§R§R§G§G§B§B.
  • NBT_PALETTE_MINIMESSAGE - Paleta de color por defecto utilizando el formato MiniMessage de Adventure.

Ejemplo con la paleta de color por defecto:

Pretty NBT

info

Para hacer tu propia paleta debes proporcionar un String[] de un tamaño de 5 con los colores en el orden de:

  1. Color base.
  2. Color de las key (llave) de los compound.
  3. Strings.
  4. Números.
  5. Sufijo de los números.

Ejemplo con una paleta de color personalizada:

Pretty NBT with palette

Linea simple

Para aplicar el formato en una sola línea solamente se debe utilizar null en el segundo argumento.

Object nbt = ...;

// Formato mejorato (pretty format) en un componente de chat, componente en json o un texto de color
Object component = ChatComponent.toPrettyComponent(nbt, null);
String json = ChatComponent.toPrettyJson(nbt, null);
String colored = ChatComponent.toPrettyString(nbt, null);

// Usando una paleta de color (ejemplo con texto de color)
String colored = ChatComponent.toPrettyString(nbt, null, ChatComponent.NBT_PALETTE_BUNGEE);

Múltiples líneas

Para aplicar el formato en múltiples líneas se debe proporcionar un String para usarlo como sangría, por ejemplo " " para una sangría de 2 espacios.

Object nbt = ...;

// Formato mejorato (pretty format) en un componente de chat, componente en json o un texto de color
Object component = ChatComponent.toPrettyComponent(nbt, " ");
String json = ChatComponent.toPrettyJson(nbt, " ");
String colored = ChatComponent.toPrettyString(nbt, " ");

// Usando una paleta de color (ejemplo con texto de color)
String colored = ChatComponent.toPrettyString(nbt, " ", ChatComponent.NBT_PALETTE_BUNGEE);