MC Toolkit

가이드 / 명령어 및 데이터

다이얼로그 화면: 모드 없이 진짜 메뉴 만들기

데이터팩 다이얼로그를 사용하면 입력 필드와 버튼이 있는 제대로 된 창을 만들 수 있습니다. 여기에서는 JSON 구조, 버튼으로 명령을 실행하는 방법, 그리고 책 메뉴 편법과의 비교를 다룹니다.

서버 메뉴는 예전에는 클릭 가능한 페이지가 있는 책으로 만들거나, 아이템 액자를 이용해 상자 GUI를 흉내 내는 방식이었습니다. 다이얼로그는 이 둘을 대체하여 실제 화면을 제공합니다.

다이얼로그란

데이터팩 안에 창을 정의하는 JSON 파일입니다:

data/<namespace>/dialog/welcome.json
{
  "type": "minecraft:notice",
  "title": { "text": "Welcome" },
  "body": [{ "type": "minecraft:plain_message",
             "contents": { "text": "Pick a class to begin." } }],
  "action": { "label": { "text": "Continue" } }
}

그다음 /dialog show @p my_pack:welcome.

종류

종류형태
notice텍스트와 닫기 버튼 하나
confirmation예 / 아니오, 각각 고유한 동작
multi_action버튼 격자
server_links내장 링크 목록
dialog_list다른 다이얼로그를 여는 메뉴

multi_action은(는) 핵심입니다 — 직업 선택기, 상점, 워프 목록이 모두 이것입니다.

버튼은 명령을 실행합니다

{ "label": { "text": "Warp to spawn" },
  "action": { "type": "minecraft:run_command", "command": "/spawn" } }

채팅에서 clickEvent과(와) 마찬가지로, 이 명령은 클릭한 플레이어로서 해당 플레이어의 권한 레벨로 실행됩니다. 운영자 전용 명령을 호출하는 버튼은 일반 플레이어에게는 아무 효과가 없습니다. 일반적인 해결 방법은 trigger 목표(objective)를 사용하는 것입니다: 버튼이 /trigger warp set 1을(를) 실행하고, 틱 함수가 권한이 필요한 부분을 처리합니다.

입력

"inputs": [
  { "type": "minecraft:text", "key": "name", "label": { "text": "Your name" }, "max_length": 16 },
  { "type": "minecraft:boolean", "key": "pvp", "label": { "text": "Enable PvP" } },
  { "type": "minecraft:single_option", "key": "class", "label": { "text": "Class" }, "options": [
      { "id": "mage", "display": { "text": "Mage" } },
      { "id": "rogue", "display": { "text": "Rogue" } } ] }
]

값은 동작이 minecraft:dynamic/run_command인 버튼을 통해 명령에 전달됩니다: 해당 버튼의 template이(가) 각 입력에 대해 $(key)을(를) 받습니다. 일반 run_command 버튼은 아무것도 받지 않습니다.

"action": {
  "type": "minecraft:dynamic/run_command",
  "template": "function my_pack:join {name:'$(name)',class:'$(class)'}"
}

그다음 호출되는 함수는 매크로입니다:

$say Welcome $(name), you chose $(class)

줄 앞의 $ 접두사와 양쪽 끝의 $(key) 치환이 전부입니다. 이것이 바인딩 메커니즘의 전부이며, 다이얼로그를 장식이 아닌 진짜로 유용하게 만드는 요소입니다.

책 편법보다 나은 이유

  • 화면이기 때문에 채팅 기록에 남는 대신 입력을 일시 정지합니다.
  • 입력이 실제로 존재합니다. 책은 링크만 제공할 수 있었습니다.
  • 아이템이 필요 없습니다. 잃어버리거나 떨어뜨리거나 복제할 것이 없습니다.
  • 깔끔하게 닫히고 다시 스크롤할 수 없습니다.

책이 여전히 더 나은 점은 장문 읽기입니다 — 다이얼로그 본문은 세 페이지 분량의 설정 이야기를 담기에 좋은 곳이 아닙니다.

웨이포인트 스타일

같은 도구가 로케이터 바 웨이포인트도 다루며, 그 스타일은 리소스 팩 에셋(assets/<namespace>/waypoint_style/)으로 추적 중인 플레이어나 위치의 스프라이트와 페이드 거리를 제어합니다; 색상은 /waypoint modify <target> color으로(로) 별도로 설정합니다. 보스바가 너무 거슬릴 팀 마커에 유용합니다.

Dialog Input & Waypoint Style Builder에서 입력과 버튼이 있는 다이얼로그 화면을 만들고 웨이포인트 스타일을 커스터마이즈하세요.

대화 상자 입력·웨이포인트 스타일 빌더 →

더 많은 가이드

모두 보기 →