Guides / Commands & Data

Texto JSON de /tellraw: clickEvent, hoverEvent e por que sua mensagem não aparece

Um único colchete errado faz o tellraw falhar silenciosamente. Aqui está o formato do componente, as ações de clique e de passar o mouse que realmente funcionam no chat, e a regra de escape que as pessoas esquecem.

/tellraw aceita um componente de texto JSON, e o modo de falha não ajuda: um componente malformado produz nenhuma mensagem e nenhum erro. Tudo abaixo é sobre acertar o formato na primeira vez.

Os três formatos válidos

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

O formato de lista é o que deve ser usado para qualquer coisa interessante, porque cada elemento pode ter sua própria formatação. A formatação do primeiro elemento é herdada pelo resto, a menos que eles a substituam — é por isso que as pessoas recebem uma mensagem inteira inesperadamente dourada. Comece uma lista com uma Linha vazia para evitar isso:

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

Ações de clique

clickEvent aceita uma ação e um valor:

AçãoValorObservação
run_command/spawnExecuta como o Jogador, no nível de permissão dele
suggest_command/msg Steve Preenche a caixa de chat, não envia
open_urlhttps://…Solicita antes de abrir
copy_to_clipboardqualquer textoO mais amigável para compartilhar coordenadas
change_pagenúmero da páginaApenas Livros

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

Ações de passar o mouse

"hoverEvent":{"action":"show_text","contents":["Click to teleport"]}

show_text, show_item e show_entity. Observe contents — guias mais antigas usam value, que foi substituído e agora falha silenciosamente. Essa única renomeação é responsável por muitas dicas de ferramentas de passar o mouse que não funcionam, copiadas de tutoriais.

O escape é onde tudo quebra

O componente inteiro é um argumento de comando, então as aspas internas devem sobreviver ao analisador de comandos. Em um Bloco de Comando, digite-o diretamente. Em um arquivo de função, o escape com barra invertida não é necessário. Em um Livro Escrito /give, o JSON é uma Linha dentro de uma Linha e precisa de escape — esse é o caso que gera paredes ilegíveis de \".

Regra geral: se você estiver aninhando componentes de texto dentro de um componente de item, construa-o com uma ferramenta em vez de manualmente.

Seletores dentro do texto

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

resolve para nomes de Jogadores no momento do envio. {"score":{"name":"@s","objective":"Kills"}} extrai um valor de placar. Ambos são melhores do que tentar concatenar valores você mesmo.

Chaves de tradução viajam entre idiomas

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

renderiza no idioma de cada Jogador — 제작대 para um cliente coreano, 作業台 para um japonês. Para um servidor multilíngue, isso é estritamente melhor do que codificar o inglês.

Construa o componente visualmente, com as ações de clique e de passar o mouse em sua forma atual, no Construtor de Comandos de Texto e Exibição.

Construtor de comandos de texto e exibição →

More guides

Browse all →

Procurando mais ferramentas de Minecraft?

Um conjunto de geradores, visualizadores e conversores que rodam no navegador — tudo grátis.