Formateo de Código y Formato Heredado

Text can be represented by using a special character indicating a formatting of some kind followed by a unique character indicating the specific formatting to be used. In SpongeAPI, there are two different characters that are supported by default: the ampersand (&) and the section character (§).

Ambos esquemas de formateo utilizan los códigos encontrados en el Wiki Minecraft. Es importante notar que el Wiki Minecraft solo muestra el uso del carácter de sección (§), pero los mismos códigos también trabajan con el ampersand (&).

Advertencia

Text serialization using any kind of formatting code is limited to representing only some of the capabilities of a Text, namely formatting. It cannot represent any kind of click or hover actions. If brevity is not an issue (as it is in Minecraft chat), it is recommended to use the Formato JSON.

Formato Ampersand

Por defecto, Sponge acepta el carácter de formateo & (ampersand). Utilizando el formato de ampersand permite facilitar al usuario la entrada del formateo de texto y es útil en los casos tales donde la brevedad es necesaria, como en la consola del chat de Minecraft.

Para utilizar este formato, puede acceder al correspondiente TextSerializer con TextSerializers#FORMATTING_CODE. Desde ahí, puede utilizar los métodos serialize o deserialize de manera normal:

import org.spongepowered.api.text.Text;
import org.spongepowered.api.text.format.TextColors;
import org.spongepowered.api.text.format.TextStyles;
import org.spongepowered.api.text.serializer.TextSerializers;

Text text = Text.of(TextColors.RED, TextStyles.UNDERLINE, "Hello World!");
String ampersandFormattedText = TextSerializers.FORMATTING_CODE.serialize(text);

Por ejemplo, el texto «¡Hola Mundo!», formateado con el color rojo y un subrayado tendría la siguiente representación con el código de formato ampersand: &c&n¡Hola Mundo!

Formato Heredado

La representación de texto heredado es el formato utilizado en versiones anteriores de Minecraft, representado por los caracteres de sección (§). Sponge proporciona serialización y deserealización utilizando el formato heredado solo para compatibilidad. No se debe utilizar a menos que sea absolutamente necesario. Luego, es recomendable utilizar el formateo con ampersand, como se detalla anteriormente. El formato heredado tiene algunas limitaciones que no tiene el formato ampersand, el más evidente de ellos es que los usuarios no pueden escribir fácilmente el carácter de sección en el chat.

Para utilizar este formato, puede acceder al correspondiente TextSerializer con TextSerializers#LEGACY_FORMATTING_CODE. A partir de ahí, puede utilizar el método serialize o ``deserialize``de manera normal:

Text text = Text.of(TextColors.RED, TextStyles.UNDERLINE, "Hello World!");
String legacyText = TextSerializers.LEGACY_FORMATTING_CODE.serialize(text);

Por ejemplo, el texto «¡Hola Mundo!», formateado con el color rojo y un subrayado tendría la siguiente representación en el formato heredado: §c§n¡Hola Mundo!

Truco

Aunque este uso no es recomendado, puede conseguir un :javadoc:`FormattingCodeTextSerializer`utilizando cualquier carácter de formateo que necesite llamando a :javadoc:`TextSerializers#formattingCode(char)`, pasando un carácter como único argumento.