Guides / Commands & Data

/tellraw JSON 텍스트: clickEvent, hoverEvent 및 메시지가 표시되지 않는 이유

괄호 하나만 잘못되어도 tellraw가 소리 없이 실패합니다. 채팅에서 실제로 작동하는 구성 요소 모양, 클릭 및 호버 동작, 그리고 사람들이 놓치는 이스케이프 규칙을 소개합니다.

/tellraw는 JSON 텍스트 구성 요소를 사용하며, 실패 모드는 도움이 되지 않습니다. 잘못된 구성 요소는 메시지도 오류도 생성하지 않습니다. 아래의 모든 내용은 처음부터 올바른 모양을 만드는 방법에 대한 것입니다.

세 가지 유효한 모양

"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_text, show_itemshow_entity. contents에 유의하세요. 이전 가이드에서는 value을 사용했지만, 이는 대체되어 이제 소리 없이 실패합니다. 이 단일 이름 변경으로 인해 튜토리얼에서 복사된 많은 죽은 호버 툴팁이 발생했습니다.

이스케이프가 깨지는 지점

전체 구성 요소는 하나의 명령 인자이므로 내부의 따옴표는 명령 파서를 통과해야 합니다. 명령 블록에서는 직접 입력합니다. 함수 파일에서는 백슬래시 이스케이프가 필요하지 않습니다. /give 글이 쓰인 책에서는 JSON이 문자열 내부의 문자열이므로 이스케이프가 필요합니다. 이 경우가 읽을 수 없는 \" 벽을 생성합니다.

경험 법칙: 아이템 구성 요소 내부에 텍스트 구성 요소를 중첩하는 경우, 손으로 만드는 대신 도구를 사용하여 만드세요.

텍스트 내부의 선택자

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

는 전송 시 플레이어 이름으로 해석됩니다. {"score":{"name":"@s","objective":"Kills"}}는 스코어보드 값을 가져옵니다. 둘 다 값을 직접 연결하려고 시도하는 것보다 낫습니다.

번역 키는 언어를 넘어 이동합니다.

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

는 각 플레이어의 언어로 렌더링됩니다. 한국어 클라이언트의 경우 제작대, 일본어 클라이언트의 경우 作業台입니다. 다국어 서버의 경우 이는 영어를 하드코딩하는 것보다 훨씬 좋습니다.

텍스트 및 표시 명령 빌더에서 현재 형식의 클릭 및 호버 동작으로 구성 요소를 시각적으로 만드세요.

텍스트 & 표시 명령어 빌더 →

More guides

Browse all →

다른 마인크래프트 도구도 찾고 계신가요?

브라우저에서 바로 쓰는 생성기·뷰어·변환기 모음입니다. 전부 무료입니다.