HURDOO 2b370e4f33334fd5af2d1419cfe356a7
강좌 자바 에디션(JE) 커맨드 공략
(Old) [JE | BE] raw JSON - /tellraw와 /title, 그리고 각종 NBT에 쓰이는 Text용 JSON
게임버전 | 모든버전 |
---|
조금 더 알찬 설명으로 리뉴얼되었습니다!
http://rawjson.ezcommand.kro.kr (클릭)
4. [JE - raw JSON 팁 (준비중)]
( 이 게시글 주소: http://rawjson.ezcommand.kro.kr )
/tellraw 와 /title, 그리고 글자를 표현할 때 많이 쓰이는
마인크래프트에서의 Text용 JSON에 관한 강좌입니다!
raw JSON text format
명령어로 텍스트를 쓰는 방법!
사용되는 곳
/title
NBT: display, text 등등..
JE 강좌 다음으로 BE 강좌가 나오는데, JE 강좌에 대한 부분이 상당히 깁니다.
BE 사용자분들은 마우스 휠로 내리시는 것보다 우측에 있는 스크롤 바로 내리시는 것으로 추천드립니다.
모바일이시라면 밑으로 휙! 많이 내리시는 것을 추천드립니다.
in JE
모든 JSON 문구들은 { } 안에 들어갑니다.
그리고 여러개의 JSON들을 [ ]로 묶고 , 로 구별할 수있습니다.
[{},{},{}]
이후 { }안에 들어갈 요소들은 크게 3가지로 나뉘는데요,
첫번째는 문구의 요소들입니다.
텍스트로 인식되려면 먼저 지정될 문구가 있어야겠죠?
그 문구를 지정해주는 역할을 해줍니다.
문구 옵션은 한 { } 안에 하나밖에 들어가지 못하며,
여러개가 들어가게 될 시 이 게시글 기준으로 가장 위쪽에 있는 것만 적용됩니다.
여러개를 사용하고 싶으시면 [{},{},{}] 이런식으로 사용해주세요.
text: 문구 그 자체입니다. 그냥 입력한 글씨를 문구로 지정해줍니다.
\n 입력시 줄바꿈(Enter), \t 입력시 건너뛰기(Tab)로 인식됩니다.
사용법: {"text":"문구"}
예시) {"text":"안녕하세요"}
안녕하세요
translate: 언어별로 번역된 글씨를 보여줍니다.
미리 해당 번역이 리소스팩 등으로 지정되어있어야 합니다.
사용법: {"translate":"번역 경로"}
예시) {"translate":"menu.reportBugs"}
버그 제보하기 (JE 1.15.2 기준 기본 번역)
with: translate 에 문구까지 같이 넣고 싶을때 함께 사용합니다.
translate가 사용되지 않았거나 string format이 없다면 무효화됩니다.
사용법: {"translate":"string format이 포함된 번역 경로","with":"문구"}
string format은 %1$s, %2$S, %3$s..., %n$S 형식으로 쓰며,
with 안에 있는 n번째 문구를 %n$S 자리에 넣습니다.
예시: {"translate":"%1$s menu.reportBugs","with":["모장에"]}
모장에 버그 제보하기 (JE 1.15.2 기준 기본 번역)
score: 점수를 표시합니다.
사용법: {"score":{"objective":"목표","name":"대상"}}
objective에는 점수판(목표)을 입력하고, name에는 대상을 입력해주세요.
예시: {"score":{"objective":"isSneaking","name":"_HURDOO_"}}
1 (_HURDOO_의 isSkeaing 점수판 점수는 1입니다)
selector: 엔티티의 이름을 문구로 정해줍니다.
여러명을 지정할 수도 있으며, 그럴 때에는 ''와 같이 표시됩니다.
사용법: {"selector":"엔티티 선택자"}
예시) {"selector":"@a"}
_HURDOO_, choco_cube, 그리고 mc_jsjjang (EZCommand 게시판 횔동 회원들 항상 감사합니다)
keybind: 조작(키보드) 설정 값을 표시합니다.
사용법: {"keybind":"조작법 코드"}
예시: {"keybind":"key.inventory"}
E (기본 '인벤토리 열기' 조작법)
nbt: NBT 값을 표시합니다.
사용법: {"nbt":"NBT 경로", 다른 NBT 하위 옵션}
다른 NBT 하위 옵션은 필수로 필요합니다. 누구의 NBT를 출력할지를 정하는 중요한 옵션입니다.
block: 특정 좌표에 있는 블록을 대상으로 지정합니다.
사용법: {"nbt":"NBT 경로","block":"좌표"}
예시) {"nbt":"Command","block":"0 0 0"}
say hi (0 0 0 위치에는 say hi 명령어가 적혀 있는 명령 블록이 있습니다)
entity: 특정 엔티티를 대상으로 지정합니다. 한 명만 지정하여야 합니다.
사용법: {"nbt":"NBT 경로","entity":"엔티티"}
예시) {"nbt":"OnGround","entity":"@a[name=_HURDOO_,limit=1"}
1b (_HURDOO_ 플레이어는 지금 땅 위에 서 있습니다)
storage: 특정 스토리지를 대상으로 지정합니다.
사용법: {"nbt":"NBT 경로","storage":"스토리지"}
(스토리지 시스템에 대해 잘 알고계신 분을 구합니다. 댓글이나 쪽지로 연락주세요.)
두번째는 글꼴의 요소들입니다.
문구를 지정한 다음에는, 문구를 꾸며야겠죠?
꾸며주는 요소들이 여러가지 있습니다.
color: 문구의 색상을 지정해줍니다.
사용법: {문구 옵션,"color":"색상"}
색상 종류는 아래에 나와있으며 기본값은 reset(기본값) 입니다.
예시) {"text":"1","color":"red"}
1
[색상의 종류]
dark_blue | dark_green | dark_aqua | dark_red | dark_purple | gold | black | dark_gray blue | green | aqua | red | light_purple | yellow | white | gray reset(기본값)
bold: 문구를 굵게 할지를 지정합니다.
사용법: {문구 옵션,"bold":참거짓}
참거짓에는 true나 false를 쓸 수 있고, true는 굵게, false는 얇게 만듭니다.
기본값은 false입니다.
예시) [{"text":"굵게 ","bold":true},{"text":"얇게","bold":false}]
굵게 얇게
italic: 문구를 기울일지를 지정합니다.
사용법: {문구 옵션,"italic":참거짓}
참거짓에는 true나 false를 쓸 수 있고, true는 기울이고, false는 기울이지 않습니다.
기본값은 false입니다. (단, /give에서 사용하는 경우 기본값은 true입니다)
예시) [{"text":"기울임 ","italic":true},{"text":"안기울임","italic":false}]
기울임 안기울임
underlined: 문구에 밑줄칠지를 지정합니다.
사용법: {문구 옵션,"underlined":참거짓}
참거짓에는 true나 false를 쓸 수 있고, true는 밑줄을 긋고, false는 밑줄을 긋지 않습니다.
기본값은 false입니다.
예시) [{"text":"밑줄 ","underlined":true},{"text":"안침","underlined":false}]
밑줄 안침
strikethrough: 문구에 취소선을 그을지를 지정합니다.
사용법: {문구 옵션,"strikethrough":참거짓}
참거짓에는 true나 false를 쓸 수 있고, true는 취소선을 긋고, false는 취소선을 긋지 않습니다.
기본값은 false입니다.
예시) [{"text":"취소 ","strikethrough":true},{"text":"안함","strikethrough":false}]
취소안함
obfuscated: 문구를 대혼란으로 만들지 지정합니다.
사용법: {문구 옵션,"obfuscated":참거짓}
참거짓에는 true나 false를 쓸 수 있고, true는 대혼란으로 만들고, false는 평온한 정상 상태로 돌아옵니다.
기본값은 false입니다. (true면 큰일남)
예시) [{"text":"대혼란 파티 ","obfuscated":true},{"text":"평온한 일상","obfuscated":false}]
앏궬밝₢쀍쭺ŝ평온한 일상
세번째는 추가 액션들의 요소입니다.
해당 문구에 추가적으로 여러가지 액션들을 넣어주는 역할을 하고 있죠.
자세한 건 아래를 보며 이해하시는 것이 좋을 것 같습니다!
clickEvent: 문구를 클릭했을 때 특정한 기능을 실행합니다.
사용법: {문구 옵션,"clickEvent":{"action":"기능","value":"내용"}}
기능과 내용에는 총 6가지를 입력할 수 있습니다.
open_url: 인터넷 링크 열기
사용법: {문구 옵션,"clickEvent":{"action":"open_url","value":"링크"}}
링크에는 열릴 링크를 입력하시면 됩니다.
예시)
{"text":"[클릭]","clickEvent":{"action":"open_url","value":"http://rawjsonclickeventeg.ezcommand.kro.kr"}}
[클릭]
open_file: 컴퓨터에 저장된 파일 열기
사용법: {문구 옵션,"clickEvent":{"action":"open_file","value":"파일"}}
파일에는 파일 경로를 입력하시면 됩니다.
예시) {"clickEvent":{"text":"[클릭]",clickEvent":{"action":"open_file","value":"c:\"}
[클릭] (왠지모르게 file:///c:\ 가 작동 안되네요..)
run_command: 명령어 실행하기
사용법: {문구 옵션,"clickEvent":{"action":"run_command","value":"명령어"}}
명령어에는 실행할 명령어를 입력하시면 됩니다. 단, 슬레쉬( / )를 맨 앞에 포함하여야 합니다.
예시) {"text":"[클릭]","clickEvent":{"action":"run_command","value":"/tellraw @a {\"text\":\"Hello\"}"}}
[클릭]
change_page: 페이지 넘기기
책에서만 이용할 수 있습니다.
사용법: {문구 옵션,"clickEvent":{"action":"change_page","value":"페이지"}
페이지에는 이동할 페이지 숫자를 입력하시면 됩니다. 꼭 이미 만들어진 페이지여야 합니다.
예시) {"text":"[클릭]","clickEvent":{"action":"change_page","value":"2"}
[예시 수정중입니다! 조금만 기다려주세요!]
suggest_command: 명령어를 채팅창에 덮어씌우기
원래 채팅창에 쓰고 있던 내용을 지우고 특정한 명령어를 채팅창에 붙여넣습니다.
사용법: {문구 옵션,"clickEvent":{"action":"suggest_command","value":"명령어"}
명령어에는 입력될 명령어를 입력하시면 됩니다. 단, 슬레쉬( / )를 맨 앞에 포함하여야 합니다.
예시) {"text":"[클릭]","clickEvent":{"action":"suggest_command","value":"/say hi"}
[클릭]
copy_to_clipboard: 복사하기
특정 내용을 클립보드에 복사합니다.
사용법: {문구 옵션, "clickEvent":{"action":"copy_to_clipboard","value":"내용"}
내용에는 복사될 내용을 입력하시면 됩니다.
예시) {"text":"[클릭]","clickEvent":{"action":"copy_to_clipboard","value":"test"}
[클릭]
hoverEvent: 마우스가 문구 위에 올려졌을 때 특정한 기능을 실행합니다.
사용법: {문구 옵션,hoverEvent:{"action":"기능","value":"내용"}}
기능과 내용에는 총 3가지가 들어갑니다.
show_text: 문구 표시
마우스를 올렸을 때 특정 문구를 표시합니다.
사용법: {문구 옵션,hoverEvent:{"action":"show_text","value":"문구"}}
문구에는 표시할 내용을 입력해주시면 됩니다.
예시) {"text":"1","hoverEvent":{"action":"show_text","value":"1은 정수입니다."}}
show_item: 아이템 표시
마우스를 올렸을 때 특정 아이템의 속성을 표시합니다.
사용법:
{문구 옵션,hoverEvent:{"action":"show_item","value":"{\"id\":\"아이템 코드\",\"Count\":개수,\"tag\":{태그}}"}}
아이템 코드에는 아이템의 영문 코드를 입력하시면 됩니다. 아이템 코드 앞의 minecraft:는 선택 사항입니다.
개수에는 아이템의 수량을 입력하시면 됩니다. 정수 또는 정수b 의 형식으로 입력하시면 됩니다.
태그는 선택 사항이며, 아이템의 NBT 태그를 입력하시면 됩니다.
예시) {"text":"test","hoverEvent":{"action":"show_item","value":"{\"id\":\"dirt\",\"Count\":1b}"}}
show_entity: 엔티티 표시
마우스를 올렸을 때 특정 엔티티의 속성을 표시합니다.
사용법: {음..}
아직 이 속성은 저도 연구중입니다.
예시) 아시는 분은 댓글 남겨주시면 감사하겠습니다.
extra: raw JSON 안에 또 raw JSON을 넣고 싶을 때 사용합니다(?)
조금 말이 이상하긴 한데, 음.. 그니까
두개의 raw JSON에 같은 글꼴 속성이나, 기능들을 넣어주고 싶을 때,
그 긴 글들을 다 적기 귀찮을 때가 있잖아요.
그럴때, 한 raw JSON 안에 extra를 사용하여 다른 raw JSON을 넣어주면
extra 안에 있는 raw JSON 문구가 extra를 포함하고 있는 raw JSON 문구의
글꼴과 기능 속성들을 그대로 덮어쓰게 된답니다!
(제가 써놓고도 저도 이해가 잘 안되는데 예시를 보시면 이해가실겁니다!)
사용법: {문구 옵션,"extra":[{문구 옵션}]}
예시) {"text":"내 이름은 ","color":"green","extra":[{"selector":"@s"}]}
내 이름은 _HURDOO_ (실행자의 닉네임은 _HURDOO_입니다)
in BE
BE에서는 JSON 문구의 종류가 JE에 비해 많이 적은 편입니다.
JE에는 문구, 글꼴, 기능들을 설정할 수 있지만,
BE에서는 그냥 문구를 출력하는 것밖에 할 수 없습니다.
게다가, NBT 태그도 쓰이지 않다 보니 사용범위 또한 좁은 편입니다.
그래서 JSON 문구가 존재는 하지만, 단순히 /tellraw 나 /title에서 글씨를 출력하실 때는
그냥 글자 형태로 입력하는 것을 추천드립니다.
모든 JSON 문구들은 { } 안에 들어갑니다.
그리고 여러개의 JSON들을 [ ]로 묶고 , 로 구별할 수있습니다.
또한, BE에서 JSON 문구를 사용하시려면 항상 JSON 문구를 {"rawtext":"여기"} 에 넣어주셔야 합니다.
{"rawtext":[{},{},{}]}
BE에서의 JSON은 문구의 요소들로만 이루어져 있습니다.
텍스트로 인식되려면 먼저 지정될 문구가 있어야겠죠?
그 문구를 지정해주는 역할을 해줍니다.
문구 옵션은 한 { } 안에 하나밖에 들어가지 못하며,
여러개가 들어가게 될 시 이 게시글 기준으로 가장 위쪽에 있는 것만 적용됩니다.
여러개를 사용하고 싶으시면 [{},{},{}] 이런식으로 사용해주세요.
text: 문구 그 자체입니다. 그냥 입력한 글씨를 문구로 지정해줍니다.
\n 입력시 줄바꿈(Enter), \t 입력시 건너뛰기(Tab)로 인식됩니다.
사용법: {"text":"문구"}
예시) {"text":"안녕하세요"}
안녕하세요
translate: 언어별로 번역된 글씨를 보여줍니다.
미리 해당 번역이 리소스팩 등으로 지정되어있어야 합니다.
사용법: {"translate":"번역 경로"}
예시) {"translate":"menu.reportBugs"}
버그 제보하기 (JE 1.15.2 기준 기본 번역)
with: translate 에 문구까지 같이 넣고 싶을때 함께 사용합니다.
translate가 사용되지 않았거나 string format이 없다면 무효화됩니다.
사용법: {"translate":"string format이 포함된 번역 경로","with":["문구"]}
string format은 %%s 로 쓰며,
순서를 매기고 싶으시면 %%1, %%2, %%3..., %%n 형식으로 쓰고,
with 안에 있는 n번째 문구를 %%n 자리에 넣습니다.
예시: {"translate":"%%2 menu.reportBugs%%1","with":["!","모장에"]
모장에 버그 제보하기! (JE 1.15.2 기준 기본 번역)
여기까지입니다.
네.. BE는 좀 짧죠?
어쩔수 없습니다.. BE의 특성상.. 기능들이 많이 없어요..
그래서 차라리 /tellraw @a {"rawtext":[{"text":"hi"}]] 하느니 /tellraw @a hi 하는게 낫다고 한겁니다..ㅋㅋ
흐아.. 힘들었네요..
이거 쓰느라고 일주일동안 아무것도 못올리기도 했고..
이 사태가 한몫하기도 했고..ㅎ
(물론 Team.혼란 과 ClearSky 일 때문이기도 했지만ㅋㅋ)
이 JSON 문구는 경험이 쌓일수록 더 쉬워집니다!
text와 color, bold를 조합해보는걸로 시작해서 차근차근 활용 범위를 늘려가시다 보면
언젠간 여기 있는 모든 옵션들을 모두 활용하실 수 있으시겠죠!
일주일동안 쓰다보니.. 어투가 들쑥날쑥할 수도 있었던 점 양해 부탁드리고요!
질문이나 추가 궁금하신 점이 있으시다면 댓글! 이나
[질문] 카테고리를 이용해주세요!
윈초
2020.04.07? JSON잘아시는구만
허두
2020.04.07(쓰면서 위키 찾아봤다는건 비밀)
윈초
2020.04.07아닠ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
허두
2020.04.07ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
쓰고 보니까 원래 모르던 것들도 한가득..ㅋㅋ
윈초
2020.04.07기본적인건,
잠만요 제가 만들던 프로젝트좀 보고옴[{"author": "wintchoco", "Level": 4}, {"author": "허두", "Level": 3}] <- 제일 설명하기 쉬운겁니다
허두
2020.04.07이건 raw JSON text format이 아니지 않나요?
윈초
2020.04.07네! 제일 기본적인 JSON이죸ㅋ
허두
2020.04.07음..ㅋㅋ
아이스틴
2020.04.13설명이 굉장히 자세하네요
허두
2020.04.13EZCommand 게시판은 눈높이를 많이 낮춰서 진행하려는 초심을
요즘 되찾으려고 노력하고있거든요!
HMPJS
2020.04.24음... 제친구가 커맨드를 잘 모르는데 이걸보면?
과연...쉬워할까요??? (@_@)
허두
2020.04.24조금 더 간단하게 추려야... 겠죠?
HMPJS
2020.04.24음... 저도 곧 3회차 정도 지나면 tellaw인데... 이거를 보면서 조금더 열심히 조사해야 겠네용...
허두
2020.04.24이건 솔직히 좀 과도하게 모든 raw JSON들을 정리한거고.. 아마 text와 color, bold 정도? 주로 사용하는 것들만 하셔도 될 것 같습니다ㅎㅎ
HMPJS
2020.04.24제가 곧 올릴 글 봐죠요ㅠㅠ 힘들어요...
ingpungya
2020.04.24be는 진짜할게 없다 json으로
허두
2020.04.24BE는 기술적인 업데이트가 좀 늘어났으면 하는 마음입니다ㅠㅠ
(아, 간단한 명령어가 BE만의 특징일까요?)
ingpungya
2020.04.24인정해요ㅠㅠ