🇮🇹 Italiano (Italian)
🇮🇹 Italiano (Italian)
Aspetto
🇮🇹 Italiano (Italian)
🇮🇹 Italiano (Italian)
Aspetto
This page is written for:
1.21
This page is written for:
1.21
Ogni volta che Minecraft mostra testo nel gioco, è con tutta probabilità definito da un oggetto Text
. Questo tipo personalizzato è preferito ad una String
per permettere formattazione più avanzata, che comprende colori, grassetto, offuscamento, ed eventi ai clic. Permettono inoltre accesso più semplice al sistema di traduzione, rendendo semplice la traduzione di qualsiasi elemento dell'interfaccia.
Se hai mai lavorato con datapack o con funzioni prima d'ora, potresti notare similarità con il formato testo json usato per i displayName, i libri, e i cartelli tra le altre cose. Come probabilmente riuscirai ad indovinare, quella è solo una rappresentazione json di un oggetto Text
, e può essere convertita tramite Text.Serializer
.
Quando si crea una mod, si preferisce generalmente costruire i tuoi oggetti Text
direttamente nel codice, sfruttando ove possibile le traduzioni.
Il modo più semplice di creare un oggetto Text
è creare un testo letterale. Questa è proprio solo una stringa che verrà visualizzata com'è, senza alcuna formattazione predefinita.
Questi sono creati tramite i metodi Text.of
o Text.literal
, che agiscono in modi un po' diversi. Text.of
accetta null come input, e restituirà un'istanza di Text
. Viceversa, Text.literal
deve non ricevere come input null, ma restituisce un MutableText
, che è una sotto-classe di Text
facilmente stilizzata e concatenata. Ne parleremo di più dopo.
Text literal = Text.of("Hello, world!");
MutableText mutable = Text.literal("Hello, world!");
// Keep in mind that a MutableText can be used as a Text, making this valid:
Text mutableAsText = mutable;
Se volessi fornire traduzioni multiple della stessa stringa di testo, puoi usare il metodo Text.translatable
per fare riferimento ad una chiave di traduzione in qualsiasi file lingua. Se la chiave di traduzione non esistesse, verrebbe convertita in testo letterale.
Text translatable = Text.translatable("my_mod.text.hello");
// Similarly to literals, translatable text can be easily made mutable.
MutableText mutable = Text.translatable("my_mod.text.bye");
Il file di lingua, en_us.json
, ha il seguente aspetto:
{
"my_mod.text.hello": "Hello!",
"my_mod.text.bye": "Goodbye :("
}
Come già accennato prima, puoi serializzare testo a JSON con il codec di testo. Per maggiori informazioni, vedi la pagina sui Codec.
Gson gson = new Gson();
MutableText mutable = Text.translatable("my_mod.text.bye");
String json = gson.toJson(TextCodecs.CODEC.encodeStart(JsonOps.INSTANCE, mutable).getOrThrow());
Questo produce JSON che può essere usato in datapack, comandi e altri posti che accettano il formato JSON di testo invece che il formato letterale o traducibile.
Inoltre, per deserializzare un oggetto testo da JSON a un oggetto della classe Text
, di nuovo, usa il codec.
String jsonString = "...";
Text deserialized = TextCodecs.CODEC
.decode(JsonOps.INSTANCE, gson.fromJson(jsonString, JsonElement.class))
.getOrThrow()
.getFirst();
Forse sei familiare con gli standard di formattazione di Minecraft:
Puoi applicare queste formattazioni usando l'enum Formatting
sulla classe MutableText
:
MutableText result = Text.literal("Hello World!")
.formatted(Formatting.AQUA, Formatting.BOLD, Formatting.UNDERLINE);
Colore | Nome | Codice in Chat | Codice MOTD | Codice Hex |
---|---|---|---|---|
Nero (black) | §0 | \u00A70 | #000000 | |
Blu Scuro (dark_blue) | §1 | \u00A71 | #0000AA | |
Verde Scuro (dark_green) | §2 | \u00A72 | #00AA00 | |
Ciano Scuro (dark_aqua) | §3 | \u00A73 | #00AAAA | |
Rosso Scuro (dark_red) | §4 | \u00A74 | #AA0000 | |
Viola Scuro (dark_purple) | §5 | \u00A75 | #AA00AA | |
Oro (gold) | §6 | \u00A76 | #FFAA00 | |
Grigio (gray) | §7 | \u00A77 | #AAAAAA | |
Grigio Scuro (dark_gray) | §8 | \u00A78 | #555555 | |
Blu (blue) | §9 | \u00A79 | #5555FF | |
Verde (green) | §a | \u00A7a | #55FF55 | |
Ciano (aqua) | §b | \u00A7b | #55FFFF | |
Rosso (red) | §c | \u00A7c | #FF5555 | |
Viola Chiaro (light_purple) | §d | \u00A7d | #FF55FF | |
Giallo (yellow) | §e | \u00A7e | #FFFF55 | |
Bianco (white) | §f | \u00A7f | #FFFFFF | |
Resetta | §r | |||
Grassetto | §l | |||
§m | ||||
Sottolineato | §n | |||
Corsivo | §o | |||
Offuscato | §k |