Guides / Commands & Data

/tellraw JSONテキスト:clickEvent、hoverEvent、そしてメッセージが表示されない理由

角括弧が1つ間違っているだけで、tellrawはサイレントに失敗します。ここでは、コンポーネントの形状、チャットで実際に機能するクリックアクションとホバーアクション、そして見落とされがちなエスケープルールについて説明します。

/tellraw はJSONテキストコンポーネントを受け取りますが、失敗モードは役に立ちません。不正な形式のコンポーネントはメッセージもエラーも生成しません。以下のすべては、最初から正しい形状にするためのものです。

3つの有効な形状

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

リスト形式は、各要素が独自の書式を持つことができるため、興味深いものには何でも使用できます。最初の要素の書式は、他の要素が上書きしない限り、残りの要素に継承されます。これが、メッセージ全体が予期せず金色になる理由です。これを避けるには、空の文字列でリストを開始します。

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

クリックアクション

clickEvent はアクションと値を受け取ります。

アクション注記
run_command/spawnプレイヤーとして、その権限レベルで実行されます
suggest_command/msg Steve チャットボックスに入力されますが、送信はされません
open_urlhttps://…開く前にプロンプトが表示されます
copy_to_clipboard任意のテキスト座標を共有するのに最も親切なもの
change_pageページ番号本のみ

run_command には落とし穴があります。これは、コマンドブロックの権限ではなく、クリックしたプレイヤーの権限で実行されます。/gamemode creative を呼び出すメニューは、通常のプレイヤーには何も実行しません。

ホバーアクション

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

show_textshow_itemshow_entitycontents に注意してください。古いガイドではvalue を使用していましたが、これは置き換えられ、現在はサイレントに失敗します。この単一の名称変更が、チュートリアルからコピーされた多くの機能しないホバーツールチップの原因となっています。

エスケープが壊れる場所

コンポーネント全体は1つのコマンド引数であるため、内部の引用符はコマンドパーサーを通過する必要があります。コマンドブロックでは、直接入力します。関数ファイルでは、バックスラッシュエスケープは不要です。/give の記入済みの本では、JSONは文字列内の文字列であり、エスケープが必要です。これが、\" の読みにくい壁を生成するケースです。

経験則:アイテムコンポーネント内にテキストコンポーネントをネストする場合は、手動ではなくツールで構築してください。

テキスト内のセレクター

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

は送信時にプレイヤー名に解決されます。{"score":{"name":"@s","objective":"Kills"}} はスコアボード値を引き出します。どちらも、自分で値を連結しようとするよりも優れています。

翻訳キーは言語をまたいで機能する

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

は、各プレイヤー自身の言語でレンダリングされます。韓国語クライアントでは 제작대、日本語クライアントでは 作業台 となります。多言語サーバーの場合、これは英語をハードコーディングするよりも厳密に優れています。

Text & Display Command Builder で、クリックアクションとホバーアクションを現在の形式で視覚的にコンポーネントを構築してください。

テキスト & 表示コマンドビルダー →

More guides

Browse all →

ほかのマインクラフトツールをお探しですか?

ブラウザだけで動くジェネレーター・ビューア・変換ツールの数々。すべて無料です。