1. 개요
이 문서는 텍스트를 보내고 표시하는 데 사용된다. 명령어와 데이터 팩을 사용하여 사용자가 직접 보낼 수 있다.2. 자바 에디션 1.21.5 이후
1.21.5에서는 텍스트 구성 요소 포맷이 많이 변경되었다. 그중 가장 큰 변경 사항은 JSON이 아닌 SNBT로 해야한다.하나의 부모 구성 요소가 있을수도, 자식 구성 요소가 있을 수도, 자식 구성 요소는 자식을 가질 수 있다. 구성 요소에는 스타일이 추가될 수도 있으며, 자식 구성 요소에 상속된다.
텍스트 부모 구성요소는 3가지가 허용된다.
- "NamuWiki"는{"text": "NamuWiki"}
와 동일하다.
-["Namu", "Wi","ki"]
는{"text": "Namu", "extra": ["Wi", "ki"]}
와 동일하다.- 즉 첫번째만 스타일을 초록색으로 지정하면
[{"text": "Namu", "color": "green"}, "Wi", "ki"]
Namu만 초록색이 아니라 Wi, Ki도 초록색이 된다. - - 텍스트 구성 요소 객체이다.
- 텍스트 구성 요소
- type <
> - 선택 사항. "text", "translatable", "score", "selector", "keybind", "nbt" 중 하나만 고를 수 있다. - 만약 비어있거나 값이 잘못되었다면 자동으로 type 결정한다.
- 그 외는 텍스트 문단을 참고한다.
- extra <
> - 선택 사항. 자식 텍스트 구성 요소. 자식 텍스트 구성 요소는 부모 구성 요소에서 모든 서식 및 상호 작용을 상속한다. - color <
> - 선택 사항. 색상을 변경한다. - shadow_color <
> - 선택 사항. 글자의 그림자 색을 변경한다. RGBA 배열을 따른다. 예:{"shadow_color":[1.0, 1.0, 1.0, 1.0]}
- font <
> - 선택 사항. 글꼴을 변경한다. 기본값은{font: "minecraft:default"}
이다. - bold <
> - 선택 사항. 해당 글자를 굵게 표시할지 여부. true일 경우 굵게 설정한다. - italic <
> - 선택 사항. '해당 글자를 기울리게 표시할지 여부. true일 경우 기울리게 설정한다. - underlined <
> - 선택 사항. 해당 글자를 밑줄 표시할지 여부. true일 경우 밑줄을 표시한다. - strikethrough <
> - 선택 사항. 해당 글자를취소선표시할지 여부. true일 경우 취소선을 표시한다. - obfuscated <
> - 선택 사항. 해당 글자를표시할지 여부. true일 경우 해당 글자는 읽을 수 없게 된다.
- insertion <
> - 선택 사항. 텍스트를 Shift 키를 누른 채 클릭하면 이 문자열이 채팅 입력란에 삽입된다. 이 기능은 대화에서만 작동한다. - click_event < > - 선택 사항. 텍스트를 클릭할 때 이벤트가 발생한다. 특별한 경우가 아니라면 대화 메시지와 서명된 책에서만 작동한다.
- action <
> - 클릭 시 수행할 작업. 다음 값만 허용된다. "open_url"
- 클릭 시 기본 웹 브라우저에서 지정된 URL을 연다.- 클릭 시 지정된 파일을 연다. 보안상 이유로 사용할 수 없지만, 일부 시스템 메시지(예: 스크린샷 찍기 등) 는 사용된다."open_file"
"run_command"
- 각각 환경에 따라 다르지만 공통적으로 클릭/상효작용 시 명령어를 실행한다.- 표지판: 명령 블록과 같은 권한으로 실행되며, 입력 제한이 없다. 그리고 실행자(@s)는 상호작용한 플레이어가 된다.
- 대화, 쓰여진 책: 이 텍스트를 클릭한 플레이어는 대화에 Enter를 누른 것처럼 채팅에 지정된 명령어를 입력한다. 따라서 현재 플레이어 권한을 따른다. 입력 제한이 256자이며, 대화 관련된 명령어(me, tell, msg, w, say, tm, teammsg 명령어)는 사용할 수 없다.
"suggest_command"
- 클릭 시 대화창에 자동 타이핑된다."change_page"
- 책에서만 이용가능하다. 클릭 시 페이지로 이동한다."copy_to_clipboard"
- 클릭 시 클립보드에 복사한다.
action이"open_url"
일 경우...- url <
> - 열 URL. - ??? < Unknown> - 열 파일 경로.
- command <
> - 실행할 명령어. - command <
> - 대화을 자동으로 타이핑되는 명령어. - page <
> - n 페이지로 이동. - value <
> - 복사할 텍스트. - hover_event < > - 선택 사항. 텍스트 위로 마우스를 가져갈 때 툴팁을 표시한다.
- action <
> - 호버 시 수행할 작업. 다음 값만 허용된다. "show_text"
- 텍스트 구성 요소를 보여준다."show_item"
- 인벤토리에서 아이템 위에 마우스를 올려 놓았을 때처럼 해당 아이템의 툴팁을 표시한다."show_entity"
- 개체 이름, 유형, UUID를 표시한다.
action이"show_text"
일 경우...- text <
> - 텍스트 구성 요소. - id <
> - 아이템 id. 유효하지 않은 아이템은minecraft:air
로 지정된다. - count <
> - 선택 사항. 아이템 개수. - components < > - 선택 사항. 아이템 구성 요소.
- name < > - 선택 사항
- id <
> - 개체 ID. - uuid <
> - 개체의 UUID. - value <
> - deprecated. 다른 값을 사용한다.
#hex_code |
black | dark_gray |
dark_red | red |
dark_green | green |
gold | yellow |
dark_blue | blue |
dark_purple | light_purple |
dark_aqua | aqua |
gray | white |
action이
"open_file"
일 경우...action이
"run_command"
일 경우...action이
"suggest_command"
일 경우...action이
"change_page"
일 경우...action이
"copy_to_clipboard"
일 경우...action이
"show_item"
일 경우...action이
"show_entity"
일 경우...2.1. 텍스트
일반 텍스트- 텍스트 구성 요소
- type <
> - "text"을 입력한다. - text <
> - 적고 싶은 텍스트
번역 텍스트
현재 선택한 언어에서 번역된 텍스트를 표시한다. 다른 언어로 설정한 플레이어가 같은 서버에 있을 경우 각자 자신의 언어로 볼 수 있다.
- 텍스트 구성 요소
- type <
> - "translatable"을 입력한다. - translate <
> - 언어 파일에서 발견된 식별자에 해당하는 번역 식별자. 해당 번역을 찾을 수 없는 경우 식별자 자체가 번역된 텍스트로 사용됩니다. - fallback <
> - 선택 사항. 번역을 찾을 수 없다면 대체된 텍스트. - with <
> - 선택 사항. 번역 텍스트의 슬롯에 삽입할 텍스트 구성 요소.
스코어보드 값
스코어보드에서 점수를 표시한다.
- 텍스트 구성 요소
- type <
> - "score"을 입력한다. - score < > - 현재 점수를 표시한다. 점수 또는 목표가 존재하지 않거나, 대상 선택 인자에서 추적되지 않으면 아무것도 표시하지 않다.
- name <
> - 점수 가진자 이름. 대상 선택 인자도 사용이 가능하다. - objective <
> - 목표 이름.
개체 이름
- 텍스트 구성 요소
- type <
> - "selector"을 입력한다. - selector <
> - 대상 선택 인자. - separator < > - 선택 사항. 구분 기호. 기본 값은
{color: "gray", text: ", "}
이다. 대상 선택자가 여려마리라면 구분 기호가 추가된다.
조작키
- 텍스트 구성 요소
- type <
> - "keybind"을 입력한다. - keybind <
> -
NBT
- 텍스트 구성 요소
- type <
> - "nbt"을 입력한다.
2.2. 예시
다양한 방법의 Hello world 출력. {text: "Hello world"} | "Hello world" |
[{text: "Hello"}, {text: " world"}] | [{text: "Hello "}, "world"] |
#608b4e 색의 Hello World!.
{text:"Hello World!",color:"#608b4e"}
foo!
이라는 굵은 글자를 출력하고, 클릭하면 bar!
가 출력.{text:"foo!",bold:true,click_event:{action:"run_command",command:"/tellraw @s {text:\"bar!\"}"}
플레이어 접속 메시지 띄우기. 번역 문자열이므로 클라이언트 언어에 따라 다르게 출력된다.
{translate:"multiplayer.player.joined",with:["Player"],color:"yellow"}
3. 베드락 에디션 + 자바 에디션 1.21.4 이전
3.1. 문법
#!syntax json
["",{"객체":"내용","다음 객체":"다음 내용",...},{"객체":"내용","다음 객체":"다음 내용",...}]
이때 큰따옴표, 중괄호, 쉼표, 콜론(:)이 하나라도 빠지면 제대로 실행되지 않을 것이다. 내용이
true
나 false
가 아니면 항상 객체와 내용 양 옆에 큰따옴표를 붙여야 한다는 것을 잊어서는 안 된다.만약 큰따옴표 안에 큰따옴표나 콜론이나 역슬래시(\)를 쓰고 싶다면, 앞에 역슬래시를 두개 써서 이스케이프 하면 된다.
\uXXXX
(유니코드 16진수 숫자 4자리)나 \n
, \t
같은 것도 되긴 하지만 제대로 표시되지 않는 경우가 많다. 이때, 유니코드 16진수 숫자 4자리를 사용할 때는
\uXXXX
자체가 하나의 문자이기 때문에 앞에 역슬래시를 붙여서는 안된다.예 | 입력 | 결과 |
옳은 예 | "text": "안녕하세요 \u4e16" | 안녕하세요 世 |
틀린 예 | "text": "안녕하세요 \\u4e16" | 안녕하세요 \\u4e16 |
3.1.1. 자바 에디션
마인크래프트에서 tellraw, title 등의 명령어에서 사용한다. {"이름":"내용"}의 형식으로 작성한다.예) 빨간색의
hi
라는 글{"text":"hi","color":"red"}
안녕!
이라는 굵은 글자를 출력하고, 클릭하면 반가워!
가 출력{"text":"안녕!","bold":true,"clickEvent":{"action":"run_command","value":"/tellraw @a {"text":"반가워!"}}
안녕 난
위키러야!
["",{"text":"안녕 난 "},{"text":"위키러야!","color":"red"}] 혹은 {"text":"안녕 난 ","extra":[{"text":"위키러야!","color":"red"}]}
타이머 표시하기
["",{"text":"남은 시간:"},{"score":{"name":"<개체 이름>","objective":"<분을 나타내는 스코어보드>"}},{"text":":"},{"score":{"name":"<개체 이름>","objective":"<초를 나타내는 스코어보드>"}}]
3.1.1.1. 글씨 효과
- text: 문자열을 출력한다. \\n을 사용하면 줄바꿈을 할 수 있다.
- score: 스코어보드의 점수를 출력한다.
형식:{"score":{"name":"점수를 가진 대상","objective":"점수 아이디"}}
- selector: 대상으로 지정된 개체들의 이름을 출력한다. 여러 개체인 경우 쉼표(,)를 사용하여 구분된다. text에서 사용할 수 없는 대상 선택 인자(@a, @p, @r, @e, @s)를 사용할 수 있다.
형식:{"selector":"대상 선택 인자"}
- translate: 마인크래프트 게임 내의 번역 문자열을 출력한다. 번역 문자열의 목록은
.minecraft\versions\(버전)\(버전).jar\assets\minecraft\lang\en_us.json
(영어)에 있다.
형식:{"translate":"번역 문자열","with":["변수1","변수2", ...]}
- keybind : 마인크래프트에서 자신이 설정한 조작키를 출력한다.
형식:{"keybind":"key.sneak"}
<-(왼쪽 Shift) [1] - nbt: 엔티티나 블록의 nbt를 출력한다. 참고로 storage의 값도 불러올 수 있다.
형식:{"nbt":"nbt경로","개체나 블록"}
예시: 자신의 체력을 표시하는 명령어/title @s title {"nbt":"Health","entity":"@s"}
(단, 값은 20.0f 이런 식이다.) - font: 글꼴을 지정한다.
minecraft:uniform
(유니코드 글꼴),minecraft:alt
(마법부여대 글꼴),minecraft:default
(기본 글꼴),minecraft:asciillager
(던전스에서 나오는 룬 글꼴) 중에서 선택할 수 있다. 리소스팩으로 추가된 글꼴은 이외의 값을 가진다. - shadow_color: 글자의 그림자 색을 변경한다. RGBA 배열을 따른다.
형식:{"shadow_color":[1.0, 1.0, 1.0, 1.0]}
- color: 텍스트의 색을 지정한다. 가능한 값은 dark_red, red, gold, yellow, dark_green, green, aqua, dark_aqua, dark_blue, blue, light_purple, dark_purple, white, gray, dark_gray, black 그리고 #RRGGBB이다(JE 1.16+). 잘 보면 ANSI 이스케이프 코드 표준의 SGR 색상 설정 부분 특수화라고 볼 수 있다.
형식:{"color":"색깔"}
black dark_gray dark_red red dark_green green gold yellow dark_blue blue dark_purple light_purple dark_aqua aqua gray white - bold: true, false로 설정할 수 있으며, 글씨의 굵음을 설정한다.
형식: {"bold":논리값} - italic: true, false로 설정할 수 있으며, 글씨의 기울어짐을 설정한다.
형식: {"italic":논리값} - underlined: true, false로 설정할 수 있으며, 글씨의 밑줄 여부를 설정한다.
형식: {"underlined":논리값} - strikethrough: true, false로 설정할 수 있으며, 글씨의 취소선 여부를 설정한다.
형식: {"strikethrough":논리값} - obfuscated: true, false로 설정할 수 있으며, 글씨를 읽을수 없게 난독화할 지를 설정한다.
형식: {"obfuscated":논리값}
3.1.1.2. 클릭 이벤트
클릭시 이벤트가 발생한다.식 구성:
{"clickEvent":{"action":"이벤트","value":"이벤트 값"}}
run_command
: 클릭시 이벤트 값에 있는 채팅을 입력한다. 무조건/
가 있어야 하며 me, tell, msg, w, say, tm, teammsg 명령어는 실행할 수 없다. 최대 256자 까지만 된다. 책으로 클릭하면 창이 닫는다.suggest_command
: 클릭시 이벤트 값에 있는것이 자동 타이핑 된다.open_url
: 클릭시 이벤트 값에 있는 URL에 들어간다.copy_to_clipboard
: value에 있는 클립보드에 복사한다.change_page
: 책에서만 이용가능하다. 클릭시 이벤트 값에 있는 페이지로 이동한다.: 보안 상 이유로 1.8부터 제거되었다. 기능 자체는 남아있어 스크린샷을 찍고 파일명을 클릭하면 나타나는 것이 이것이다.open_file
: 1.9부터 Twitch 지원이 제거되었다. 클릭시 트위치 사용자 정보 GUI 화면이 열린다.twitch_user_info
3.1.1.3. 호버 이벤트
글자에 마우스를 가까이 대면 이벤트가 발생한다.식 구성 : {"hoverEvent":{"action":"이벤트","value":"이벤트 값"}}
- show_text : 글자에 마우스를 가까이 대면 이벤트 값에 있는 글자가 뜬다
- show_item : 글자에 마우스를 가까이 대면 이벤트 값에 있는 아이템의 이름이 뜬다
- show_entity : 글자에 마우스를 가까이 대면 이벤트 값에 있는 엔티티의 이름이 뜬다
show_achievement: 1.12부터 제거되었다. 대신 show_text를 사용할 수 있다. 글자에 마우스를 가까이 대면 이벤트 값에 있는 도전과제의 이름이 뜬다.
이벤트 값에 있는 글자의 색상을 바꾸고 싶다면 "value":"이벤트 값" 대신에 "value":{"text":"이벤트 값","color":"색상"} 을 입력하면 된다.
3.1.2. 베드락 에디션
BE의 경우에는titleraw
명령어에서 JSON 문법을 사용하며, 객체 목록은 JE와 같다. *text *selector *score 등등이 가능해졌지만 여전히 클릭, 호버이벤트는 지원을 안하고 있다. 추후 업데이트때 나올가능성도 있다. 단, BE의 경우 JSON 문법에 다음과 같은 처리를 해야 한다.{"rawtext":[JSON]}
[1] https://www.minecraftjson.com/ 이 사이트에서 손쉽게 편집이 가능하다.