MC Toolkit

가이드 / 명령어 및 데이터

조건이 하나뿐인 predicate에는 wrapper가 없으며, 이는 실제로 형태가 달라지는 변화입니다

조건이 하나면 객체 자체가 됩니다. 둘 이상이면 all_of 또는 any_of로 감싸집니다. 빌더가 다루는 여덟 가지 조건 유형과, 반전이 플래그가 아니라 inverted로 감싸는 wrapper인 이유도 설명합니다.

데이터팩 predicate는 조건을 설명하는 JSON 파일이며, 그 구조는 조건이 몇 개인지에 따라 달라집니다. 바로 이 부분에서 예제를 복사해서 확장하려는 사람들이 발목을 잡힙니다.

하나는 하나짜리 목록이 아닙니다

조건 개수출력 형태
0{}
1조건 객체 자체
2+{ "condition": "minecraft:all_of", "terms": [ … ] }

조건이 하나일 때는 wrapper가 없습니다. 두 번째를 추가하면 파일 전체의 형태가 바뀝니다 — 원래 조건이 새로운 루트 아래 terms 배열의 첫 번째 요소가 됩니다. 이것을 읽거나 생성하는 모든 것은 두 가지 형태를 모두 처리해야 하며, 조건 하나로 만든 예제는 하나를 더 추가하는 순간 필요한 형태를 보여주지 않습니다.

any_of는 대안 결합자입니다: 모든 항이 통과해야 하거나, 그중 하나만 통과하면 됩니다.

반전도 플래그가 아니라 wrapper입니다

"invert": true 필드는 없습니다. 부정된 조건은 감싸집니다:

{ "condition": "minecraft:inverted", "term": { …the original condition… } }

term에 주목하세요, 단수형입니다 — inverted는 정확히 하나를 받는 반면, all_of와 any_of는 terms 배열을 받습니다. 형태가 다른 비슷하게 생긴 두 키이며, 반전은 조건별로 적용되므로 predicate는 하나의 all_of 안에서 반전된 항과 일반 항을 자유롭게 섞을 수 있습니다.

빌더가 제공하는 여덟 가지 조건 유형

entity_properties            random_chance
int_value_check              random_chance_with_enchanted_bonus
weather_check                time_check
location_check               match_tool

게임에는 스무 가지 조건 유형이 있습니다; 이것들은 빌더의 선택기가 다루는 여덟 가지입니다. 그중 둘은 이름이 바뀌었는데, 빌더는 여전히 예전 id인 random_chance_with_looting와 value_check를 기록하며, 현재 버전은 이를 거부하므로 출력에서 그 둘의 이름을 바꾸세요.

random_chance_with_enchanted_bonus는 잠시 짚고 넘어갈 만합니다: 이는 마법부여 없이 확률을 받고 동시에 마법부여 레벨에 따라 조정되는 enchanted_chance를 받으므로(바닐라 자체 테이블에서는 약탈), 확률이 처치자가 들고 있는 것에 따라 달라집니다. 따라서 이는 맥락상 처치자가 존재하는 경우에만 의미가 있습니다 — 이는 드롭률 조건이지, 범용 무작위 게이트가 아닙니다. 다른 모든 곳에서는 일반 random_chance를 사용하세요.

int_value_check(그리고 float_value_check)는 숫자가 범위에 들어가는지 검사합니다. 빌더의 값 검사는 마법부여 레벨 소스나, 복사한 후 JSON에 직접 편집해 넣는 사용자 정의 표현식을 제공합니다.

선택기는 정확히 바닐라 세트입니다

바이옴이나 구조 id가 실제인지 확인할 때 알아두면 좋습니다: 빌더의 드롭다운은 선별된 샘플이 아닙니다.

  • 66개 바이옴 — 26.2까지의 모든 바이옴; 26.3의 dappled_forest는 없으므로 직접 입력하세요
  • 34개 구조 — 마찬가지로 26.2까지; 26.3이 추가한 18개의 abandoned_camp_* 구조는 목록에 없습니다
  • 18개 블록 태그와 15개 아이템, 이들은 실제로 동작하는 하위 집합입니다

이는 가정이 아니라 게임 자체의 레지스트리 데이터와 대조하여 검증되었으므로, 바이옴이나 구조 목록에 없는 id가 26.3의 추가 사항 중 하나가 아니라면 그 id는 존재하지 않습니다. 블록 태그와 아이템의 경우는 반대입니다: 없다는 것은 선택기가 그것을 나열하지 않을 뿐이며, id를 직접 입력해도 괜찮습니다.

프레디케이트 & 조건 빌더 →

더 많은 가이드

모두 보기 →