데이터 컴포넌트 도입 후 /give 명령어: NBT 태그는 어떻게 바뀌었나
1.20.5 버전에서 아이템 NBT가 데이터 컴포넌트로 대체되었지만, 온라인에 있는 대부분의 /give 명령어는 여전히 옛날 방식으로 작성되어 있습니다. 여러분이 알고 있는 태그들이 이제 작동하는 컴포넌트들로 어떻게 매핑되는지 알려드립니다.
오래된 가이드에서 /give 명령어를 복사해서 붙여넣었을 때 게임에서 Unknown item tag라고 응답하거나 마법 부여가 소리 없이 사라진다면, 그 명령어는 1.20.5 이전 NBT 형식으로 작성된 것입니다. 아이템 데이터가 데이터 컴포넌트로 이동하면서, 기존의 {display:{Name:...}} 블록은 더 이상 파싱되지 않습니다.
형태가 바뀌었습니다
old /give @p diamond_sword{display:{Name:'"Skybreaker"'},Enchantments:[{id:sharpness,lvl:5}]}
new /give @p diamond_sword[custom_name='"Skybreaker"',enchantments={sharpness:5}]
중괄호가 아닌 대괄호를 사용합니다. 컴포넌트는 아이템 ID에 붙는 평평한 쉼표로 구분된 목록입니다.
실제로 많이 사용하게 될 매핑
| 이전 NBT | 데이터 컴포넌트 |
|---|---|
display:{Name:...} | custom_name |
display:{Lore:[...]} | lore |
Enchantments:[{id,lvl}] | enchantments={id:level} |
Unbreakable:1b | unbreakable={} |
CustomModelData:3 | custom_model_data=3 |
AttributeModifiers:[...] | attribute_modifiers |
display:{color:...} | dyed_color |
SkullOwner | profile |
세 가지 주의사항
- 인용 부호.
custom_name는 JSON 텍스트 컴포넌트를 받기 때문에, 일반 문자열도
인수 내부에 자체 인용 부호가 필요합니다: custom_name='"Skybreaker"'.
- 기본값 제거.
!를 접두사로 붙이면 아이템이 일반적으로 가지고 있는
컴포넌트를 제거할 수 있습니다. 예를 들어, [!attribute_modifiers]는 피해 보너스가 전혀 없는 검을 지급합니다.
- 기반암 에디션에는 해당 없음. 기반암 (Bedrock)
/give는 여전히 자체 데이터 값 및
컴포넌트 모델을 사용합니다. 자바 에디션 컴포넌트 문자열은 기반암 에디션에서 작동하지 않습니다.
/give 명령어 생성기는 컴포넌트 형식을 자동으로 작성해주고 두 에디션 모두의 결과물을 보여주므로, 여러분이 사용하는 서버에 맞는 것을 복사할 수 있습니다.