Formateo de Código y Formato Heredado
El texto puede ser representado mediante la utilización de un carácter especial indicando un formato de algún tipo seguido de un carácter único que indique el formato específico que se utilizará. En la SpogeAPI, hay dos caracteres diferentes que son compatibles por defecto: el ampersand (&) y el carácter de sección (§).
Ambos esquemas de formateo utilizan los códigos encontrados en el Minecraft Wiki <http://minecraft.gamepedia.com/Formatting_codes>-. Es importante notar que el Wiki Minecraft solo muestra el uso del carácter de seccion (), pero los mismos códigos también trabajan con el ampersand (&).
Advertencia
La serialización de texto utilizando cualquier tipo de código de formato se limita a representar solo algunas de las capacidades de un :javadoc:`Texto`, es decir, formateo. No puede representar ningún tipo de acciones de click o desplazamiento. Si la brevedad no es un problema (como lo es en el chat de Minecraft), es recomendado utilizar ya sea el Formato de TextXML o el 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.