MC Toolkit

Guias / Comandos e dados

Componentes de texto do /tellraw: click_event, hover_event e por que sua mensagem não aparece

Um único colchete errado faz o tellraw não enviar nada aos alvos. Veja o formato do componente, as ações de clique e hover que realmente funcionam no chat e a regra de escape que todo mundo esquece.

/tellraw recebe um componente de texto, e a falha é cruel: um componente malformado não gera mensagem para ninguém — o único erro vai para quem executou o comando, ou para a saída de um Bloco de Comando, onde ninguém está olhando. Tudo abaixo é sobre acertar o formato logo de primeira.

As três formas válidas

"plain string"
{"text":"one component"}
["joined ",{"text":"list","color":"gold"}]

A forma de lista é a que você deve usar para qualquer coisa interessante, porque cada elemento pode ter sua própria formatação. A formatação do primeiro elemento é herdada pelos demais, a menos que eles a substituam — é por isso que muita gente acaba com a mensagem inteira dourada sem querer. Comece a lista com uma string vazia para evitar isso:

/tellraw @a ["",{"text":"Warning: ","color":"red"},{"text":"low health"}]

Ações de clique

click_event recebe uma ação mais o campo próprio daquela ação — não existe um value compartilhado:

AçãoCampoObservação
run_commandcommand: "/spawn"Executa como o jogador, no nível de permissão dele
suggest_commandcommand: "/msg Steve "Preenche a caixa de chat, mas não envia
open_urlurl: "https://…"Pede confirmação antes de abrir
copy_to_clipboardvalue: "any text"A mais amigável para compartilhar coordenadas
change_pagepage: 2Somente para Livros

run_command é a que tem armadilha: ela executa com as permissões do jogador que clicou, não do Bloco de Comando. Um menu que chama /gamemode creative não faz nada para um jogador comum.

Ações de hover

"hover_event":{"action":"show_text","value":["Click to teleport"]}

show_text, show_item e show_entity. Repare nos nomes — guias antigos usam hoverEvent, clickEvent e contents, que a 1.21.5 substituiu por hover_event, click_event e, para show_text, value. Essa renomeação explica muitos tooltips de hover mortos copiados de tutoriais.

O escape é onde tudo quebra

O componente inteiro é um único argumento de comando, então as aspas dentro dele precisam sobreviver ao analisador de comandos. Em um Bloco de Comando, digite direto. Em um arquivo de função, não é preciso escapar com barra invertida. Em um Livro Escrito via /give, as páginas também são componentes de texto, escritas em SNBT — sem escape de string dentro de string desde a 1.21.5, e uma página ainda escrita como string JSON escapada agora aparece como texto literal, com as aspas à mostra.

Regra prática: se você está aninhando componentes de texto dentro de um componente de item, monte tudo com uma ferramenta em vez de fazer à mão.

Seletores dentro do texto

{"selector":"@p","separator":{"text":", "}}

resolve para nomes de jogadores no momento do envio. {"score":{"name":"@s","objective":"Kills"}} puxa um valor de placar. Os dois são melhores do que tentar concatenar valores por conta própria.

Chaves de tradução atravessam idiomas

{"translate":"block.minecraft.crafting_table"}

é renderizado no idioma de cada jogador — 제작대 para um cliente coreano, 作業台 para um japonês. Para um servidor multilíngue, isso é estritamente melhor do que fixar o inglês no código.

Monte e pré-visualize comandos de texto e de exibição no Construtor de Comandos de Texto e Exibição.

Construtor de comandos de texto e exibição →

Mais guias

Ver todos →