Guides / Commands & Data

Texto JSON de /tellraw: clickEvent, hoverEvent y por qué tu mensaje no se muestra

Un solo corchete mal puesto hace que tellraw falle silenciosamente. Aquí tienes la estructura del componente, las acciones de clic y de pasar el ratón que realmente funcionan en el chat, y la regla de escape que la gente olvida.

/tellraw toma un componente de texto JSON, y el modo de fallo no es útil: un componente mal formado no produce ningún mensaje ni error. Todo lo que sigue trata de cómo conseguir la forma correcta a la primera.

Las tres formas válidas

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

La forma de lista es la que se debe usar para cualquier cosa interesante, porque cada elemento puede llevar su propio formato. El formato del primer elemento es heredado por el resto a menos que lo anulen, por lo que la gente obtiene un mensaje completo inesperadamente dorado. Empieza una lista con una cadena vacía para evitar eso:

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

Acciones de clic

clickEvent toma una acción y un valor:

AcciónValorNota
run_command/spawnSe ejecuta como el Jugador, con su nivel de permisos
suggest_command/msg Steve Rellena el cuadro de chat, no lo envía
open_urlhttps://…Pide confirmación antes de abrir
copy_to_clipboardcualquier textoLa más amigable para compartir coordenadas
change_pagenúmero de páginaSolo Libros

run_command es la que tiene una trampa: se ejecuta con los permisos del Jugador que hace clic, no los del Bloque de comandos. Un menú que llama a /gamemode creative no hace nada para un Jugador normal.

Acciones de pasar el ratón

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

show_text, show_item y show_entity. Ten en cuenta contents: las guías antiguas usaban value, que fue reemplazado y ahora falla silenciosamente. Ese único cambio de nombre explica muchos de los tooltips de pasar el ratón que no funcionan y que se copiaron de tutoriales.

El escape es donde falla

El componente completo es un argumento de comando, por lo que las comillas internas deben sobrevivir al analizador de comandos. En un Bloque de comandos, escríbelo directamente. En un archivo de función, no es necesario el escape con barra invertida. En un Libro escrito /give, el JSON es una cadena dentro de una cadena y necesita escape; ese es el caso que genera muros ilegibles de \".

Regla general: si estás anidando componentes de texto dentro de un componente de ítem, constrúyelo con una herramienta en lugar de hacerlo a mano.

Selectores dentro del texto

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

se resuelve a nombres de Jugador en el momento del envío. {"score":{"name":"@s","objective":"Kills"}} extrae un valor de marcador. Ambos son mejores que intentar concatenar valores tú mismo.

Las claves de traducción viajan entre idiomas

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

se renderiza en el idioma de cada Jugador: 제작대 para un cliente coreano, 作業台 para uno japonés. Para un servidor multilingüe, esto es estrictamente mejor que codificar el inglés.

Construye el componente visualmente, con las acciones de clic y de pasar el ratón en su forma actual, en el Text & Display Command Builder.

Constructor de comandos de texto y visualización →

More guides

Browse all →

¿Buscas más herramientas de Minecraft?

Un conjunto de generadores, visores y conversores que funcionan en el navegador — todos gratis.