마인크래프트 자바에디션 1.20.5 프리릴리즈1을 기준으로 작성되어 1.21.4 기준으로 변경점이 추가된 상태입니다.
1. Item components 란?
기존의 아이템은 nbt 태그로 이루어졌습니다.
따라서 아이템의 데이터 구성은 다음과 같았습니다. (들어간 값은 예시)
Items:[
{
Slot:0b, (인벤토리에서의 위치)
id:"minecraft:diamond_picaxe", (아이템의 ID)
Count:1b, (아이템의 개수)
tag: {Damage:0,display:{Name:"곡갱이"}} (아이템의 NBT 태그)
}, {...}, ... ]
이랬던 아이템의 형식이 1.20.5부턴 다음으로 변경됩니다.
Items: [
{
Slot :byte, (인벤토리에서의 위치)
count: int, (아이템의 개수 - 이제 생략 가능 (기본값 1)) 또한 해당 아이템의 최대 스택 개수 까지만 넣을 수 있습니다. (엔더 진주 count 64개 불가능)
id: "", (아이템의 id) (필수)
components: {
"컴포넌트":"내용", ... (아이템의 추가 구성요소들)
}
}, {...}
]
"구성요소":"내용", ... (아이템의 추가 구성요소들)의 부분은 밑의 예시를 보면서 이해하시면 될 것 같습니다.
"minecraft:lore": [내용], "minecraft:unbreakable":{}, "minecraft:custom_name": "내용" 처럼 여러개의 구성요소와 아이템의 기본 정보들이 하나의 중괄호에 모여있습니다.
이러한 구성요소들은 기존의 give @s stick{nbt태그}의 방식에서 give @s stick[구성요소들] 식으로 작성 방식이 변경되었으며
또한 바닐라에서도 자동완성을 지원하게 됩니다. 그러면 지금부터 이 구성요소들의 사용법을 전부 정리하겠습니다.
양이 많으니 필요한 구성요소를 찾기 기능으로 검색해주시기 바랍니다.
byte, int, long ... 에 대해
추가로 nbt 태그들을 보다보면 위의 사례처럼 slot: byte 같은 경우를 자주 보시게 될겁니다. 보통 프로그래밍에 필수적인 것들이라 코딩을 배우신 분들은 다 아시겠지만 모르는 분들을 위해 정리해두었습니다.
다만 밑의 정리내용에서도 해당 태그에 대해 설명이 있고 예시도 다 있으니 밑의 내용은 참고만 해도 충분합니다.
1. byte : 8비트 정수 -128 ~ 127 사이의 수 입니다. b를 붙여 구분합니다. (12b)
2. boolean : true, false 로 설정할 수 있는 데이터 타입입니다. 실제로는 1(true)과 0(false)으로 저장되는 byte 변수입니다. (당연히 숫자로 설정가능) 밑에서는 bool로 줄여서 표현될 예정입니다. (NoAI: bool)
3. short : 16비트 정수 -32768 ~32767 사이의 수 입니다. s를 붙여 구분합니다. (123s)
4. int : 32비트 정수 (범위 생략). (12351)
5. long : 64비트 정수로 l을 붙여 구분합니다. (123412l)
6. float : 32비트로 구성된 소수입니다. f를 붙여 구분합니다. (3.14f)
7. double : 64비트로 구성된 소수입니다. (3.141592 / 3.141592d)
8. string : 문자열입니다. 다만 밑에서는 "" 로 표현될 예정입니다. (ex: id: "") 단일 문자열의 경우 ""부분을 생략할 수 있는 경우가 종종 있습니다.
9. list : 대괄호 속에 값들로 구성된 리스트입니다. 다만 밑에서는 []로 등장할 예정입니다. (ex: banner_patterns: [])
10. Compound : 중괄호 속에 a:b 형식으로 구성된 값들의 모음입니다. 다만 밑에서는 { }로 등장할 예정입니다. (ex:{color:"green"} - 모든 값들은 "" 나 ''로 둘러쌓여야 하나 키(왼쪽 값)는 숫자, 알파벳, _, -, ., + 로만 구성되어 있으면 생략할 수 있습니다. 그 외에도 숫자만 있을 경우 값(오른쪽 값)도 생략하는 경우가 있습니다. 만약 "" 안에 "가 또 등장한다면 \(백슬래시)로 \" 처리를 해주어야합니다.
11. Byte Array : byte로 구성된 배열입니다. 대괄호 속에 B;로 시작해 리스트와 구분짓습니다. (ex:[B; 1b, 2b, 3b]
12. Int Array : int로 구성된 배열입니다. 대괄호 속에 I;로 시작해 리스트와 구분짓습니다. (ex:[I; 1, 2, 3])
13. Long Arrayt : 생략 (ex: [L;1l, 2l, 3l])
다만 11 ~ 13의 경우 데이터만 잘 맞춰주면 B;, I;, L; 없이도 알아서 추가해서 저장해줍니다.
2. Item Components 정리
1. attribute_modifiers
attribute는 많이 복잡하므로 예시를 보고 이해해주시기 바랍니다.
예시1(리스트사용) :
/give @p minecraft:stick[minecraft:attribute_modifiers=[{type:'generic.attack_damage',slot:"mainhand" , uuid:[1,2,3,4],name:'POWER!',amount:5.0,operation:'add_value'}, {type:'generic.max_health', uuid:[2,3,4,5],name:'STRONG!',amount:50.,operation:'add_value'}]]
예시2(컴파운드사용):
/give @p minecraft:stick[minecraft:attribute_modifiers={modifiers:[{type:'generic.attack_damage', slot:"mainhand", uuid:[1,2,3,4], name:'POWER!', amount:5.0, operation:'add_value'}], show_in_tooltip:0b}]
- 겉모습은 기본 막대기라 예시 생략
예시 1의 경우 (리스트를 사용할 경우 모든 항목이 자동으로 수정자가 됩니다.)
attribute_modifiers= [
{
type: "" attribute 이름, (필수)
slot: "" 해당 attribute가 적용되기 위해 필요한 슬롯입니다. 여러개의 슬롯을 넣을 수 있습니다. (any, hand, armor, mainhand, offhand, head, chest, legs, feet 가능)
uuid: int array 해당 수정자의 UUID 입니다. 4개의 정수를 저장합니다. 동일 UUID에서는 하나의 수정자만 존재합니다. (필수)
name: "" 수정자의 이름입니다. 알려진 역할이 없습니다, (필수)
amount: double 적용될 크기입니다, (필수)
operation: "" 적용하는 방법입니다. add_value, add_multiplied_base, add_multiplied_total (필수)
}, { ... }, ...
]
예시 2의 경우 (컴파운드를 사용할 경우 modifiers 항목과 show_in_tooltip 항목을 사용합니다.)
attribute_modifiers= {
modifiers: [ (수정자의 리스트입니다.)
{ 위의 수정자 }, {....}, ...
],
show_in_tooltip: bool 해당 툴팁을 표시할지 말지 설정합니다. (기본값 : true)
}
2. banner_patterns
현수막이나 방패의 무늬에 적용되는 컴포넌트입니다. 다른 아이템에도 넣을 수는 있으나 적용되지는 않습니다.
예시 :
/give @p minecraft:white_banner[minecraft:banner_patterns=[{color:"green",pattern:"stripe_left"}, {color:"red",pattern:"stripe_right"}]]
banner_patterns= [ (리스트)
{
color: "" 적용될 염료 색상
pattern: "" 적용될 현수막의 패턴 ID입니다. 자세한 내용은 여기로
}, { ... }, ....
]
3. base_color
방패에 특정 색 배너를 적용하는 컴포넌트입니다.
예시:
/give @p minecraft:shield[minecraft:base_color="red"]
빨간색 현수막을 적용한 방패를 받습니다.
base_color= "" (방패에 적용될 원색 현수막의 색상을 넣습니다.)
4. bees
벌집이나 벌통에 들어있는 벌들의 정보를 저장하는 컴포넌트입니다. 벌 말고 다른 엔티티도 저장은 되나 벌집에서 나오지는 않는 것 같습니다.
예시:
/give @p minecraft:bee_nest[minecraft:bees=[{entity_data:{id:"bee", CustomName:"hello",CustomNameVisible:true},ticks_in_hive:1,min_ticks_in_hive:10}]]
이름이 hello인 벌 1마리가 들어가있는 벌집을 얻습니다.
bees=[
{
entity_data: {}, 엔티티의 정보입니다. 엔티티의 nbt 태그가 들어가는데 내용이 많아서 생략하겠습니다.
min_ticks _in_hive: int , 벌집에서 최소 보내는 시간(틱)입니다. (이 틱만큼 지나야 벌집에서 나올 수 있음)
ticks_in_hive: int 벌집에서 엔티티가 지낸 틱입니다.
}
]
5.block_entity_data
기존의 BlockEntityTag 처럼 블록 엔티티를 설치할 때 블록에 적용되는 NBT를 적용합니다 만
이 태그는 플레이어가 OP 상태이고 오직 명령 블록, 독서대, 표지판, 생성기에만 적용된다고 합니다.
실제로 테스트결과 상자, 화로에는 적용이 안되고 명령 블록에서는 적용되었습니다. 아마도 상자 같은건 container 처럼 다른 구성요소로 처리가 가능하기에 그런 별도의 구성요소가 없는 블록 엔티티에 적용하기 위해 있는 것 같습니다.
예시:
/give @p minecraft:command_block[minecraft:block_entity_data={id:"command_block",Command:"say asdf"}]
설치하면 say asdf 명령어가 적혀있는 커맨드블록을 받습니다.
block_entity_data= {
해당 블록 엔티티의 NBT 태그들을 넣습니다. id 태그는 반드시 존재하여야 하고 x, y, z 태그는 제외됩니다.
}
1.21.4 버전에서의 변경점
- 해당 아이템과 구성요소의 id 태그가 일치해야만 구성요소가 적용됩니다.
- block_entity_data : 구성요소의 id와 블록 아이템의 종류가 일치해야함
- 해당 아이템을 사용하면 직접적, 간접적으로 높은 권한 수준의 명령어가 실행될 수 있는 경우 아이템 툴팁에 경고가 추가됩니다.
- 이 경고는 다른 구성 요소로 숨길 수 없습니다.
6. block_state
블록을 설치할때 블록의 상태를 결정하는 구성요소입니다.
예시:
/give @p minecraft:oak_fence_gate[minecraft:block_state={facing:"east",open:"true"}]
어디에다 설치하든 동쪽을 바라보고 열려있는 참나무 울타리 문을 받습니다.
block_state= {
블록 상태 : "값", .... (적용될 블록 상태들의 모음입니다. 값은 예시처럼 문자열의 형태로 주어져야합니다. (ex: bites:'1')
}
7. bucket_entity_data
양동이에 담겨있는 엔티티의 nbt 태그입니다. 단 정해진 태그만 넣을 수 있습니다.
예시:
/give @p minecraft:axolotl_bucket[minecraft:bucket_entity_data={Variant:3, Health:1f, Age:-200, NoAI:1}]
체력이 1이고 AI가 없는 파란색 새끼 아홀로틀이 담긴 양동이를 받습니다.
bucket_entity_data= {
NoAI: bool 엔티티의 NoAI 태그를 설정합니다.
Silent: bool 엔티티의 Silent 태그를 설정합니다.
NoGravity: bool 엔티티의 NoGravity 태그를 설정합니다.
Glowing: bool 엔티티의 Glowing 태그를 설정합니다.
Invulnerable: bool 엔티티의 Invulnerable 태그를 설정합니다.
Health: float 엔티티의 Health 태그를 설정합니다.
Age: int 아홀로틀의 Age 태그를 설정합니다.
Variant: int 아홀로틀의 Variant 태그를 설정합니다.
HuntingCooldown: long 아홀로틀의 메모리 모듈중 has_hunting_cooldown의 남은 시간을 설정합니다.
BucketVariantTag: int 열대어의 Variant 태그를 설정합니다.
}
8. bundle_contents
꾸러미에 들어있는 아이템의 리스트입니다.
다른 아이템에도 해당 구성요소가 저장은 되나 별도의 바뀌는 점은 없습니다.
꾸러미의 Items 태그를 대체합니다.
예시:
/give @p minecraft:bundle[minecraft:bundle_contents=[{id:"dirt",count:32}, {id:"diamond_sword",components:{"custom_name":'"test"'}}]]
흙 32개와 test라는 이름을 가진 다이아몬드 검을 가진 꾸러미를 얻습니다.
bundle_contents= [
{
아이템의 NBT 구조입니다. (id, componets:{} 등)
}, {...}, ...
]
9. can_break
모험모드에서 해당 아이템으로 부술 수 있는 블록을 정하는 구성요소입니다. CanDestory 태그를 대체합니다.
예시1 (여러개의 조건이나 show_in_tooltip을 사용할 때):
/give @p minecraft:diamond_pickaxe[minecraft:can_break={predicates:[{blocks:"furnace", nbt:"{x:36}"}, {blocks:["dirt","stone"]}], show_in_tooltip:false}]
x좌표가 36에 있는 화로나 흙, 돌을 부술 수 있는 다이아몬드 곡괭이입니다. 부술 수 있는 아이템의 정보가 뜨지 않습니다.
예시2 (1개의 조건만을 사용할 때):
/give @p minecraft:diamond_pickaxe[minecraft:can_break={blocks:"furnace", state:{facing:"east"}}]
동쪽을 바라보는 화로만 부술 수 있는 다이아몬드 곡괭이입니다.
can_break = {
predicates: [ { (부술 수 있는 블록들의 조건 리스트입니다.)
blocks: "" 또는 [], 해당하는 블록의 id 또는 태그 (#)의 문자열 또는 문자열 리스트입니다.
nbt: "", 해당하는 블록의 nbt 태그입니다. - 추가 조사 필요 CustomName, Items 태그를 써도 인식을 못함
state: {}, 해당하는 블록의 상태 컴파운드 입니다. 내부 형식 예시 - facing:"east"
}
],
show_in_tooltip: bool, 부술 수 있는 블록 정보를 아이템에 띄울지 말지 결정합니다. (기본값 true)
}
만약 1개의 조건만을 사용한다면 예시2처럼 predicates 항목 없이 바로 조건을 적어도 가능합니다.
10. can_place_on
모험모드에서 해당 아이템을 설치 할 수 있는 블록을 정하는 구성요소입니다. CanPlaceOn 태그를 대체합니다.
위의 can_break와 데이터구조가 똑같습니다.
예시1 (여러개의 조건이나 show_in_tooltip을 사용할 때):
/give @p minecraft:dirt[minecraft:can_place_on={predicates:[{blocks:"furnace", nbt:"{x:36}"}, {blocks:["dirt","stone"]}], show_in_tooltip:false}]
x좌표가 36에 있는 화로나 흙, 돌에 설치할 수 있는 흙을 얻습니다.
예시2 (1개의 조건만을 사용할 때):
/give @p minecraft:dirt[minecraft:can_place_on={blocks:"furnace", state:{facing:"east"}}]
동쪽을 바라보는 화로에만 설치할 수 있는 흙을 얻습니다.
can_place_on = {
predicates: [ { (설치할 수 있는 블록들의 조건 리스트입니다.)
blocks: "" 또는 [], 해당하는 블록의 id 또는 태그 (#)의 문자열 또는 문자열 리스트입니다.
nbt: "", 해당하는 블록의 nbt 태그입니다.
state: {}, 해당하는 블록의 상태 컴파운드 입니다. 내부 형식 예시 - facing:"east"
}
],
show_in_tooltip: bool, 부술 수 있는 블록 정보를 아이템에 띄울지 말지 결정합니다. (기본값 true)
}
만약 1개의 조건만을 사용한다면 예시2처럼 predicates 항목 없이 바로 조건을 적어도 가능합니다.
11. charged_projectiles
석궁에 장전되어 있는 발사체의 정보를 나타냅니다. 만약 없다면 해당 석궁은 장전되지 않은 것입니다.
예시:
/give @p minecraft:crossbow[minecraft:charged_projectiles=[{id:"dirt", components:{"custom_name":"test"}},{id:"arrow"}]]
test라는 이름의 흙과 화살을 장전한 석궁을 받습니다. 발사 시 화살이 두 발 다중발사되고 하나는 먹으면 test라는 이름의 흙이 들어옵니다.
charged_projectiles= [
{
아이템의 NBT 구조입니다. (id, componets:{} 등) - count 항목의 경우 수정해도 먹었을때 여전히 1개씩 들어옵니다.
}, {...}, ... (여러개의 아이템 데이터를 넣을 경우 다중발사의 발사체처럼 날아갑니다. (개수제한 없음))
]
12. container
상자, 화로 등 인벤토리를 가진 블록들의 내부 아이템 정보를 담은 구성요소입니다.
예시:
/give @p chest[minecraft:container=[{item:{id:"dirt", count:50},slot:0}, {item:{id:"diamond",components:{"custom_name":'{"text":"파란색 보석"}'}},slot:1}]]
첫번째 칸에 흙 50개, 두번째 칸에 이름이 파란색 보석 인 다이아몬드 1개가 들어있는 상자를 얻습니다.
container= [
{
item: {아이템의 NBT 구조}, (slot 태그를 제외한 아이템의 정보입니다. 해당 필드의 id 태그가 필수입니다.)
slot: int (아이템의 위치입니다. 상자 기준 0 ~ 255 사이의 값입니다.)
}, {...}, ...
]
13. container_loot
저장공간을 가진 아이템의 내부에 전리품(loot table)에 따른 아이템을 넣습니다.
예시:
/give @p chest[minecraft:container_loot={loot_table:"minecraft:entities/zombie",seed:0}]
설치할때마다 좀비의 전리품 (대표적으로 0 ~ 2개의 썩은고기)이 랜덤하게 들어간 상자를 얻습니다.
container_loot= {
loot_table: "", (전리품의 ID입니다.)
seed: long (전리품의 seed 입니다. 0이거나 태그가 정의되지 않을 경우 매 설치마다 랜덤으로 정해집니다. 특정 값으로 정해질 경우 모든 설치가 같은 아이템 조합으로 나오게 됩니다.
}
14.custom_data
기존의 아이템 NBT 태그 시스템에서는 a:1 처럼 사용자가 언제든 새로운 nbt 태그를 추가할 수 있었습니다. (특정 아이템 감지 등에 사용됨) 해당 부분을 대체하는 구성요소입니다. 해당 내용은 게임에 영향을 주지 않습니다.
예시:
/give @p minecraft:stick[minecraft:custom_data={asdf:1,power:10.0}]
asdf:1,power:10.0 이라는 custom_data를 가진 막대기를 얻습니다.
custom_data= { 키:값 쌍 } (int든 double이든 array든 list든 전부 가능합니다.
마인크래프트 1.21에서 SNBT 문자열로 지정해 JSON 유형의 정보를 저장할 수 있게 변경되었습니다.
15. custom_model_data
아이템의 모델을 변경할 수 있는 구성요소입니다
예시:
/give @p minecraft:stick[minecraft:custom_model_data=10]
10에 할당된 아이템 모델을 가진 stick을 얻습니다.
custom_model_data=int (리소스팩에 미리 설정된 id - model 에 따라 모델을 불러옵니다.)
1.21.4 버전에서 리소스팩의 변경에 따라 사용되는 다양한 정보를 담을 수 있도록 변경되었습니다.
- floats : float 값 리스트입니다.
- flags : boolean 값 리스트입니다.
- strings : 문자열 값 리스트입니다.
- colors : RGB 색 값 리스트입니다.
16. custom_name
아이템의 이름을 설정합니다.
예시:
/give @p diamond[minecraft:custom_name='{"text":"탄소 압축체", "color":"aqua", "bold":true}']
이름이 탄소 압축체이고 하늘색에 볼드 처리된 다이아몬드를 얻습니다.
custom_name= "" (JSON Text 구성요소를 사용합니다.)
17. damage
아이템이 받은 데미지(감소한 내구도)를 저장하는 구성요소입니다. 내구도가 있는 아이템에만 효과가 있으며 해당 아이템은 항상 이 구성요소를 가집니다.
예시:
/give @p minecraft:diamond_pickaxe[minecraft:damage=1560]
내구도가 1 남은 다이아몬드 곡괭이를 얻습니다.
damage= int (아이템의 감소한 내구도입니다. (내구도 아님) 음수는 불가능합니다. 기본값 0)
18. debug_stick_state
디버그 막대기가 특정 블록의 어떤 상태를 변경할지 저장하는 구성요소입니다. (상자의 waterlogged를 바꾸기로 설정하면 모든 상자가 우클릭했을때 waterlogged가 변경되는 것처럼)
예시:
/give @p minecraft:debug_stick[minecraft:debug_stick_state={"oak_fence":"east", "chest":"waterlogged"}]
참나무 울타리를 우클릭하면 바로 east 상태가 바뀌고 상자를 우클릭하면 바로 waterlogged 상태가 바뀌는 디버그 막대기를 얻습니다.
debug_stick_state= {
"block ID": "상태", (블록 ID의 어떤 상태를 바꿀지 설정합니다.)
}
19. dyed_color
염색 가능한 아이템 (#minecraft:dyeable에 속한 아이템들)의 염색 색 정보를 저장하는 구성요소입니다.
예시1:
/give @p minecraft:leather_boots[minecraft:dyed_color={rgb:12341,show_in_tooltip:false}]
색: #003035를 가진 가죽 장화를 받습니다. 어떤 색인지 보여주지 않습니다.
예시2:
/give @p minecraft:leather_boots[minecraft:dyed_color=12341]
색: #003035를 가진 가죽 장화를 받습니다. 툴팁으로 어떤 색인지 보여줍니다.
dyed_color= {
rgb: int, (색상의 16진수 코드가 10진수로 변환된 값입니다. 이런 계산기 사이트를 이용하는게 좋습니다.)
show_in_tooltip: bool (어떤 색이 적용됐는지 설명에 띄울지를 결정합니다. 기본값 true)
}
해당 구성요소는 show_in_tooltip을 사용하지 않을 경우 예시2처럼 compound 부분을 바로 int로 적을 수 있습니다.
20. enchantment_glint_override
해당 아이템에 마법 부여 효과를 덮어 씌웁니다.
예시:
/give @p minecraft:iron_axe[minecraft:enchantment_glint_override=true]
아무런 마법 부여도 없지만 마법 부여 효과를 가진 철 도끼를 얻습니다.
enchantment_glint_override= bool (true시 마법 부여 효과가 표시되며 false 시 마법 부여 효과가 표시되지 않습니다. 이것은 실제로 마법 부여가 있어도 없앨 수 있고 마법 부여가 없어도 효과를 표시할 수 있습니다.)
21. enchantments
해당 아이템의 마법 부여 정보를 가지고 있는 구성요소입니다.
예시:
/give @p minecraft:iron_chestplate[minecraft:enchantments={levels:{protection:2,thorns:5}, show_in_tooltip:false}]
가시 5와 보호 2를 가진 철 상의를 받습니다. 하지만 어떤 마법 부여가 있는지는 보여주지 않습니다.
예시2:
/give @p minecraft:stick[minecraft:enchantments={sharpness:1, protection:1}]
날카로움 1과 보호 1을 가진 막대기를 얻습니다.
enchantments= {
levels: { (마법 부여의 정보를 담는 compound 입니다.)
ID : int, (부여할 마법 부여의 ID와 레벨입니다. 원래는 "protection":2와 같은 형식으로 저장되나 예시처럼 적어도 알아서 변환해줍니다.)
},
show_in_tooltip: bool (해당 마법 부여를 표시할지 말지 정합니다. (단, 마법 부여 효과와 이름의 색이 변하는 것은 그대로입니다.)
]
만약 show_in_tooltip을 사용하지 않는다면 바로 levels의 내용만 적어도 가능합니다. (예시2 참고)
22. entity_data
소환 알, 갑옷 거치대, 아이템 액자 등 아이팀을 통해 개체를 소환할 때 그 개체의 NBT 데이터를 저장하는 구성요소입니다.
예시:
/give @p minecraft:sheep_spawn_egg[minecraft:entity_data={id:"zombie", CustomName:"test", Glowing:1}]
소환하면 test라는 이름과 발광 효과를 가진 좀비를 소환하는 양 소환 알을 받습니다.
entity_data= {
개체의 NBT 태그를 담습니다. (단 id는 무조건 포함되어야 하며 소환 알의 경우 소환되는 개체가 id를 따라갑니다. 갑옷 거치대나 아이템 액자 같은 아이템은 id에 영향을 받지 않습니다.)
}
1.21.4 버전에서의 변경점
- 해당 아이템과 구성요소의 id 태그가 일치해야만 구성요소가 적용됩니다.
- entity_data : 구성요소의 id와 생성 알의 종류가 일치해야함
- 해당 아이템을 사용하면 직접적, 간접적으로 높은 권한 수준의 명령어가 실행될 수 있는 경우 아이템 툴팁에 경고가 추가됩니다.
- 이 경고는 다른 구성 요소로 숨길 수 없습니다.
23.fire_resistanet -> damage_resistant (1.21.2)
해당 구성요소가 존재한다면 이 아이템은 불이나 용암에 불타지 않습니다. (네더라이트처럼)
예시:
/give @p minecraft:stick[minecraft:fire_resistant={}]
불이나 용암에 타지 않는 막대기를 얻습니다.
fire_resistant= {} ( 빈 오브젝트 형식으로 안에 들어가는 데이터는 없습니다.)
1.21.2 버전에서 이름이 damage_resistanct로 변경되었으며 데미지 유형 태그를 넣는 types 항목이 추가되었습니다.
이 구성요소의 아이템은 types항목에 해당하는 데미지로부터 아이템 엔티티가 제거되지 않으며 장착했을 때 해당하는 데미지에 의해 내구도가 감소하지 않습니다.
24.firework_explosion
폭죽의 폭발 유형을 저장하는 구성 요소입니다. 폭죽 탄약에 사용됩니다.
예시:
/give @p minecraft:firework_star[minecraft:firework_explosion={shape:star, colors:[2032],has_trail:true,has_twinkle:true}]
별모양, 2032 색, 잔상 효과, 반짝이는 효과를 가진 폭죽 탄약을 얻습니다.
firework_explosion= {
shape: "", (폭발의 유형입니다. small_ball, large_ball, star, creeper, burst)
colors: int array, (폭발 초기 색상의 코드입니다. 각 불꽃마다 배열에서 랜덤하게 하나를 선택합니다.)
fade_colors: int array, (폭발 이후 사라질 때 변하는 색상의 코드입니다. 각 불꽃마다 배열에서 랜덤하게 하나를 선택합니다.) (색상의 경우 이런 계산기 사이트를 이용하는게 좋습니다)
has_trail: bool, (각 불꽃이 잔상을 남길지 여부입니다. (다이아몬드 조합 효과))
has_twinkle: bool, (각 불꽃이 반짝이며 사라질지 여부입니다. (발광석 가루 조합 효과))
}
25. fireworks
폭죽의 폭발 유형과 비행 시간을 저장하는 구성 요소입니다. 폭죽에 사용됩니다.
예시:/give @p minecraft:firework_rocket[minecraft:fireworks={flight_duration:2,explosions:[{shape:star, colors:[65493, 123], fade_colors:[12,15235],has_trail:true,has_twinkle:true}]}]
체공시간 2, 별 모양, 2개의 색중 하나로 시작해 2개의 색중 하나로 끝나며 잔상 효과와 반짝이는 효과를 가지는 폭죽을 얻습니다.
fireworks= {
explosions: [
{ firework_explosion의 태그와 동일합니다. }, { ...}, ...
],
flight_duration: byte (폭죽의 비행 지속시간입니다. 조합에 사용된 화약의 수와 같습니다.(기본값: 1))
}
26. food
해당 구성요소가 있는 아이템은 음식으로 취급되며 먹을 수 있습니다
예시:
/give @p minecraft:stick[food={nutrition:10,saturation:10f, is_meat:true,can_always_eat:true,eat_seconds:3,effects:[{effect:{id:"speed",amplifier:1,duration:100}, probaility:0.5},{effect:{id:"regeneration",duration:100}}]}]
먹으면 허기 10, 포만감 10을 회복시켜주고 먹는데 3초가 걸리며 배고프지 않아도 먹을 수 있고 늑대한테 먹일 수 있고 먹으면 속도 2가 50%확률로 5초, 재생 1이 5초동안 부여되는 막대기를 얻습니다.
food= {
nutrition: int, (먹었을때 회복되는 허기입니다. 양수여야합니다. (필수))
saturation: float, (먹었을때 회복되는 포만감입니다. (필수))
is_meat: bool, (true일 경우 늑대에게 먹일 수 있습니다. (기본값 false))
can_always_eat: bool, (true일 경우 플레이어가 배고프지 않아도 먹을 수 있습니다. (기본값 false))
eat_seconds: float, (이 음식을 먹는데 걸리는 시간(초)입니다. (기본값 1.6))
effects: [ (먹었을때 적용될 포션 효과 리스트입니다.)
{
effect: {
id: "", (포션 효과의 ID입니다. (필수))
amplifier: byte, (효과의 레벨입니다. 0이 1레벨입니다. (기본값 0)
duration: int, (효과의 지속시간(틱)입니다. 0 이하의 값은 1로 취급됩니다. (기본값 1))
ambient: bool, (신호기에 의해 제공받는 효과인지 결정합니다. true일 경우 화면을 더 덜 가립니다. (기본값 false))
show_particles: bool, (효과가 입자를 생성하는지 여부를 결정합니다. (기본값 true))
show_icon: bool (효과가 아이콘을 보여줄지 결정합니다. (기본값 true))
},
probability: float (해당 효과가 적용될지를 정하는 확률입니다. 반드시 0 ~ 1 사이의 값이여야합니다. (기본값 1))
}, {...}, ...
]
}
1.21에서 using_convert_to 가 추가되었습니다만 1.21.2에서 use_remainder 라는 새로운 구성요소로 분리되었습니다.
1.21.2에서 consumable가 추가되면서 소모하는 기능은 해당 구성요소로 이동하고
food 구성요소에는 밑의 3개 항목만 남게되었습니다.
nutrition : 소모했을 때 얻는 허기입니다.
saturation : 소모했을 때 얻는 포만감입니다.
can_always_eat : 배고프지 않아도 소모할 수 있게 합니다.
27. hide_additional_tooltip
존재할 경우 아이템의 추가 툴팁 부분을 없앱니다. (ex: 크리에이티브 아이템의 카테고리 설명부분, 음반의 작곡가 부분)
예시: /give @p minecraft:music_disc_11[minecraft:hide_additional_tooltip={}]
hide_additional_tooltip={} (빈 오브젝트 형식)
28. hide_tooltip
존재할 경우 아이템의 모든 툴팁을 없앱니다. 마우스를 올려도 아무 정보가 뜨지 않습니다.
/give @p minecraft:stick[minecraft:hide_tooltip={}]
hide_tooltip={} (빈 오브젝트 형식)
29. instrument
염소 뿔을 사용했을 때 나올 소리의 ID입니다. 염소뿔은 해당 구성요소가 없을 경우 ponder_goat_horn 소리를 사용합니다.
예시: /give @p minecraft:goat_horn[minecraft:instrument="sing_goat_horn"]
'노래' 소리를 사용하는 염소 뿔을 받습니다.
instrument="" (염소 뿔이 사용할 소리의 ID입니다.)
30. intangible_projectile
존재할 경우 해당 발사체는 발사되었을 때 플레이어가 주울 수 없습니다. (크리에이티브 제외)
패치노트에는 해당 구성요소 쇠뇌의 charged_projectile 구성요소 내의 아이템만 적용 가능하다 되어 있는데 그냥 화살에 해당 구성요소를 넣고 활로 쏴도 잘 적용됩니다.
예시: /give @p minecraft:crossbow[minecraft:charged_projectiles=[{id:"arrow",components:{"intangible_projectile":{}}}]]
발사하면 못 줍는 화살이 장전된 쇠뇌를 받습니다.
intangible_projectile={} (빈 오브젝트 형식)
31. item_name
아이템의 기본 이름을 설정합니다.
custom_name과의 차이점
1. 모루로 해당 이름을 지우거나 수정할 수 없습니다. (모루로 이름 바꿀때 뜨는건 custom_name)
2. 기울임체의 기본값이 false입니다.
3. 아이템 액자, 현수막 마커 등 특정 요소에서 이름을 띄우지 않습니다.
예시: /give @p minecraft:stick[minecraft:item_name='{"text":"전설의 막대기","color":"red", "bold":true}']
빨간색이고 볼드 처리된 전설의 막대기 라는 이름의 막대기를 받습니다. (기울임체 X)
item_name="" (JSON Text 구성요소를 사용합니다.)
1.21.2 버전에서 모든 아이템이 item_name을 가지도록 변경되었습니다.
즉 모든 아이템이 !item_name 을 사용해 기본 이름을 지울 수 있게 되었습니다.
32. lock
상자류 블록들은 해당 구성요소의 값과 일치하는 custom_name 아이템으로만 열 수 있습니다. (item_name 불가능) 설치할 때 해당 블록의 NBT 태그로 복사됩니다.
예시: /give @p chest[minecraft:lock="asdf"]
asdf 라는 이름을 가진 아이템으로만 열 수 있는 상자를 얻습니다.
lock="" (해당 블록을 열 수 있는 아이템 이름을 적습니다)
1.21.2에서 아이템 predicate를 입력받도록 변경되었습니다.
- items: 가능한 아이템의 정보로 아이템 id, 태그, 아이템 id 리스트가 될 수 있습니다.
- count : 여기에 해당하는 개수만큼의 아이템을 들고 있어야 열 수 있습니다.
- 범위를 지정할 수 있는 int 값입니다. (값 1개 또는 {max:5, min:2} (하나를 생략해도 됨) 같은 형식)
- components : 들고 있는 아이템의 구성요소가 여기에 포함된 구성요소와 일치해야 열 수 있습니다.
- predicates : 여기에 넣은 아이템 sub-predicate에 들고 있는 아이템이 일치해야 열 수 있습니다.
- sub-predicate는 추가 예정
위의 예시의 1.21.2 버전
/give @p chest[lock={components:{"custom_name":"asdf"}}]
/give @p chest[lock={components:{"custom_name":"asdf"}, count:1, items:["minecraft:dirt"]}]
asdf 라는 이름을 가진 흙을 1개 들고 있어야 열 수 있는 상자를 얻습니다.
33.lodestone_tracker
자석석 나침반이 가리키는 자석석의 위치입니다.
예시:
/give @p minecraft:compass[minecraft:lodestone_tracker={target:{pos:[80,63,60], dimension:"overworld"},tracked:false}]
오버월드의 80, 63, 60 위치를 가리키는 나침반을 얻습니다. (자석석이 있든 없든)
lodestone_tracker={
target: { (자석석의 위치 정보입니다. 존재하지 않을 경우 나침반이 랜덤하게 돕니다.)
pos: int array, (자석석의 좌표입니다.)
dimension: "" (자석석이 위치한 차원의 ID입니다.)
},
tracked: bool (true일 경우 해당 위치의 자석석이 부숴지면 이 구성요소는 초기화됩니다. false일 경우 자석석이 부숴져도 구성요소가 초기화되지 않아 나침반이 계속 해당 위치를 가리킵니다. (기본값 true))
34. lore
아이템의 추가 툴팁을 넣는 구성요소입니다.
예시:
/give @p minecraft:stick[minecraft:lore=['{"text":"이 편지는 영국에서 최초로 시작되어","color":"white"}','{"text":"일년에 한바퀴를 돌면서"}','{"text":"받는 사람에게 행운을 주었고"}',"생략"]]
lore=["", "", ...] (한 항목당 한 줄을 나타내는 문자열 리스트입니다. 각 문자열은 JSON Text 구성요소를 사용합니다.)
35. map_color
지도 아이템 이미지의 글 써진 부분의 색상입니다. (예시 참고)
예시: /give @p minecraft:filled_map[minecraft:map_color=65493]
map_color= int (색상의 코드입니다. 이런 계산기 사이트를 이용하는게 좋습니다 )
36. map_decorations
지도에 표시되는 마커 정보를 담고 있습니다.
예시:
/give @p minecraft:filled_map[minecraft:map_decorations={"makeer1":{type:"target_x", x:112,z:35,rotation:0}, "home":{type:"mansion",x:120,z:50,rotation:10}}, minecraft:map_id=0]
112 35 좌표에 X 마커, 120 50 좌표에 맨션 마커를 놓습니다.
map_decorations={
"(마커 이름)": { (해당 마크의 고유한 이름)
type: "", (마크에 표시될 아이콘의 타입입니다. 양이 많아서 밑의 접은 글에 정리해두었습니다..)
x: double, (마커가 표시될 x좌표입니다.)
y: double, (마커가 표시될 y좌표입니다.)
rotation: float (아이콘의 회전 각도입니다. 0.0 ~ 360.0 범위이며 북쪽에서 시계방향으로 회전합니다.)
}, "":{}, ...
}
type에 들어갈 수 있는 항목들 -
player
frame
red_marker
blue_marker
target_x
target_point
player_off_map
player_off_limits
mansion
monument
banner_white, banner_orange, banner_magenta, banner_light_blue, banner_yellow, banner_lime, banner_pink, banner_gray, banner_light_gray, banner_cyan, banner_purple, banner_blue, banner_brown, banner_green, banner_red, banner_black
red_x
village_desert, village_plains, village_savanna, village_snowy, village_taiga
jungle_temple
swamp_hut.
37. map_id
채워진 지도의 id입니다. 같은 id끼리 지도 콘텐츠와 마커 등을 공유합니다.
예시: /give @p minecraft:filled_map[minecraft:map_id=0]
id가 0인 채워진 지도를 받습니다.
map_id= int (지도의 ID)
38. max_damage
해당 아이템의 최대 내구도입니다. 해당 구성요소가 존재하지 않을 경우 해당 아이템은 데미지를 받지 않습니다. (테스트 결과 바닐라의 도구류들은 알아서 생기는 것 같습니다.) 추가로 max_stack_size와 호환되지 않습니다.
예시: /give @p minecraft:golden_pickaxe[minecraft:max_damage=100000]
예시2: /give @p minecraft:acacia_button[minecraft:max_damage=2, minecraft:damage=1]
max_damage= int (아이템이 받을 수 있는 최대 데미지 (내구도) 입니다. 반드시 양의 정수여야 합니다.
39. max_stack_size
이 아이템이 중첩될 수 있는 최대 크기입니다. max_damage와 호환되지 안습니다.
예시: /give @p minecraft:torch[minecraft:max_stack_size=99] 99
한 칸에 99개까지 들어가는 횃불을 99개 받습니다.
max_stack_size= int (해당 아이템이 중첩될 수 있는 정수 입니다. 1 ~ 99 사이의 값이여야 합니다.
지금은 안되는 명령어 예시
예시: /give @p minecraft:diamond_sword[minecraft:max_stack_size=99] 99
한 칸에 99개가 들어가는 다이아몬드 검을 99개 얻습니다.
프리릴리즈1에서 max_damage와 max_stack_size가 호환되지 않게 바뀌면서 불가능해졌습니다.
40. note_block_sound
머리 블록을 노트 블록 위에 올렸을 때 노트 블록에서 나는 소리를 결정하는 구성요소입니다. 머리를 설치할 때 해당 블록의 nbt 태그로 복사됩니다.
예시: /give @p minecraft:player_head[minecraft:note_block_sound="entity.creeper.primed"]
해당 머리를 소리 블록 위에 올리고 소리블록을 작동시키면 크리퍼 점화 소리가 납니다.
note_block_sound="" (소리 블록을 작동시킬 때 날 소리의 ID입니다.)
41. ominous_bottle_amplifier
불길한 병의 흉조 효과 레벨입니다.
예시: /give @p minecraft:ominous_bottle[minecraft:ominous_bottle_amplifier=4]
흉조 효과 레벨 5의 불길한 병을 얻습니다. (불길한 병은 1.21 실험적 기능을 켜야 얻을 수 있습니다.)
ominous_bottle_amplifier=int (불길한 병을 먹으면 생길 흉조 효과의 레벨입니다. 0 ~ 4 사이의 값이며 0이 1레벨입니다.
42. pot_decorations
장식된 도자기의 각 면 장식을 결정하는 구성요소입니다. 설치할 때 블록으로 데이터가 복사됩니다.
예시: /give @p minecraft:decorated_pot[minecraft:pot_decorations=["brick","brewer_pottery_sherd","brewer_pottery_sherd"]]
pot_decorations=["", "", "", ""] (각 면에 적용될 조각의 문자열 리스트입니다. 4개까지 가능하며 만약 4개보다 적을 경우 빈 칸은 "brick"으로 대체됩니다.
43. potion_contents
예시1: /give @p potion[minecraft:potion_contents={potion:"regeneration",custom_color:10000,custom_effects:[{id:"speed",amplifier:1,duration:1000,ambient:true,show_particles:true,show_icon:true},{id:"instant_health"}]}]
예시2: /give @p potion[minecraft:potion_contents={custom_effects:[{id:speed,duration:10000,amplifier:3},{id:jump_boost,duration:10000}]}]
예시3: /give @p potion[minecraft:potion_contents="swiftness"]
potion_contents= {
potion: "", (선택사항으로 마크의 기본 포션 타입의 ID입니다. 해당 ID에 맞는 이름과 색, 포션효과가 설정됩니다. (양조기로 제작 가능한 포션들))
custom_color: int, (선택사항으로 포션의 색상 코드입니다. 이런 계산기 사이트를 이용하는게 좋습니다)
custom_effects: [ (포션에 넣을 효과 리스트입니다.)
{
id: "", (포션 효과의 ID입니다. 예시2처럼 ""를 생략할 수 있습니다. (필수))
amplifier: byte, (효과의 레벨입니다. 0이 1레벨입니다. (기본값 0)
duration: int, (효과의 지속시간(틱)입니다. 0 이하의 값은 1로 취급됩니다. (기본값 1))
ambient: bool, (신호기에 의해 제공받는 효과인지 결정합니다. true일 경우 화면을 더 덜 가립니다. (기본값 false))
show_particles: bool, (효과가 입자를 생성하는지 여부를 결정합니다. (기본값 true))
show_icon: bool (효과가 아이콘을 보여줄지 결정합니다. (기본값 true))
}, {...}, ...
]
만약 potion 항목만 사용한다면 해당 구성요소를 문자열로 끝낼 수 있습니다. (예시3 참고)
이하는 potion 태그에 들어가는 일반 포션의 타입 이름입니다. 출처
제작 불가능한 포션 | anything except the below | – | – |
물병 | water | – | – |
평범한 물약 | mundane | – | – |
진한 물약 | thick | – | – |
어색한 물약 | awkward | – | – |
야간투시의 물약 | night_vision | – | long_night_vision |
투명화 물약 | invisibility | – | long_invisibility |
도약의 물약 | leaping | strong_leaping | long_leaping |
화염 저항의 물약 | fire_resistance | – | long_fire_resistance |
신속의 물약 | swiftness | strong_swiftness | long_swiftness |
감속의 물약 | slowness | strong_slowness | long_slowness |
수중 호흡의 물약 | water_breathing | – | long_water_breathing |
치유의 물약 | healing | strong_healing | – |
고통의 물약 | harming | strong_harming | – |
독 물약 | poison | strong_poison | long_poison |
재생의 물약 | regeneration | strong_regeneration | long_regeneration |
힘의 물약 | strength | strong_strength | long_strength |
나약함의 물약 | weakness | – | long_weakness |
행운의 물약 | luck | – | – |
거북 도사의 물약 | turtle_master | strong_turtle_master | long_turtle_master |
느린 낙하의 물약 | slow_falling | – | long_slow_falling |
Infestation [1.21] | infested | – | – |
Oozing [1.21] | oozing | – | – |
Weaving [1.21] | weaving | – | – |
Wind Charging [1.21] | wind_charged | – | – |
1.21.2에서 새로운 항목 custon_name이 추가되었습니다. (선택사항)
포션의 번역문을 불러올 때 사용되며 만약 "foo" 값을 설정한 잔류형 포션의 경우
이름이 item.minecraft.lingering_potion.effect.foo 에 해당하는 번역문을 가져옵니다.
44. profile
플레이어 머리의 스킨을 결정하는 구성요소입니다.
예시: /give @p minecraft:player_head[minecraft:profile=Potan7] or profile="Potan7"
profile= {
name: "", (선택사항으로 해당하는 플레이어의 닉네임입니다. 만약 이 태그만 제공될 경우 닉네임을 통해 나머지 정보를 가져옵니다.)
id: int array, (선택사항으로 스킨 소유자의 UUID입니다. 플레이어가 닉네임을 변경했을 때 해당 정보를 통해 나머지 태그를 갱신합니다.)
properties: [ (선택사항으로 속성의 리스트입니다.)
{
name: "", (속성의 이름입니다. textures만 가능합니다.)
value: "", (텍스쳐의 base64로 인코드 된 데이터입니다.
signature: "", (서명입니다. (선택사항))
}, {...}, ...
]
}
name을 제외한 나머지 요소에 대해 예시가 없는 이유:
저희가 손으로 처리할 것은 아닙니다.
45. rarity
아이템 이름의 기본 색상을 결정합니다.
예시: /give @p minecraft:stick[minecraft:rarity=epic]
rarity="" (common, uncommon, rare, epic이 가능합니다.)
46. recipes
지식의 책을 사용 했을 때 받을 조합법 정보를 담은 구성 요소입니다.
예시: /give @p minecraft:knowledge_book[minecraft:recipes=["oak_door","dark_oak_door"]]
사용 시 참나무 문과 짙은 참나무 문 조합법을 잠금해제 하는 지식의 책을 받습니다.
예시2: /give @p minecraft:knowledge_book[minecraft:recipes=[stick, diamond_axe, diamond_block]]
막대기, 다이아몬드 도끼, 다이아몬드 블록 조합법을 잠금해제 하는 지식의 책을 받습니다.
recipes=[str list] (잠금해제할 조합법의 ID 리스트입니다.)
47. repair_cost
모루에서 수리, 합치기, 이름 변경 등을 할때 기본 비용에 추가되는 값입니다.
예시: /give @p minecraft:diamond_pickaxe[minecraft:repair_cost=10]
repair_cost=int (추가될 경험치 레벨 양입니다. 양의 정수여야 합니다. (기본값 0))
48. stored_enchantments
마법이 부여된 책의 마법 부여 정보를 담는 구성요소입니다. enchantments로 부여된 마법부여는 여기에 영향을 끼치지 않습니다.
예시:
/give @p minecraft:enchanted_book[minecraft:stored_enchantments={levels:{protection:2,thorns:5}, show_in_tooltip:false}]
가시 5와 보호 2를 가진 마법이 부여된 책을 받습니다. 하지만 어떤 마법 부여가 있는지는 보여주지 않습니다.
예시2:
/give @p minecraft:enchanted_book[minecraft:stored_enchantments={sharpness:1, protection:1}]
날카로움 1과 보호 1을 가진 마법이 부여된 책 얻습니다.
stored_enchantments= {
levels: { (마법 부여의 정보를 담는 compound 입니다.)
ID : int, (부여할 마법 부여의 ID와 레벨입니다. 원래는 "protection":2와 같은 형식으로 저장되나 예시처럼 적어도 알아서 변환해줍니다.)
},
show_in_tooltip: bool (해당 마법 부여를 표시할지 말지 정합니다. (단, 마법 부여 효과와 이름의 색이 변하는 것은 그대로입니다.)
]
만약 show_in_tooltip을 사용하지 않는다면 바로 levels의 내용만 적어도 가능합니다. (예시2 참고)
49.suspicious_stew_effects
수상한 스튜를 먹었을 때 적용되는 효과의 정보입니다.
예시: /give @p minecraft:suspicious_stew[minecraft:suspicious_stew_effects=[{duration:100,id:speed},{id:"regeneration"}]]
먹으면 100틱짜리 속도 증가, 160틱짜리 재생 효과를 얻는 수상한 스튜를 얻습니다.
suspicious_stew_effects=[
{
id:"", (효과의 ID입니다.)
duration: int (효과의 지속시간(틱)입니다. 기본값 160)
}, {...}, ...
]
50. tool
이 구성요소가 있는 아이템은 도구로 취급됩니다.
예시:
/give @p minecraft:stick[minecraft:tool={default_mining_speed:2.0,rules:[{blocks:"#dirt",speed:1},{blocks:[stone,cobblestone],speed:20f,correct_for_drops:true}]}]
#dirt 블록은 1의 속도, 돌과 조약들은 아이템을 떨구며 20의 속도로, 나머지는 2의 속도로 캘 수 있는 막대기를 얻습니다.
예시2:
/give @p minecraft:stick[minecraft:tool={default_mining_speed:2.0,damage_per_block:5,rules:[{blocks:"#dirt",speed:5},{blocks:[stone,cobblestone],speed:20f,correct_for_drops:true}]},minecraft:max_damage=10,minecraft:damage=0]
위의 막대기와 똑같으나 내구도가 10이고 1개를 깰떄마다 내구도가 5씩 감소합니다.
tool={
default_mining_speed: float, (rules에 해당하지 않는 블록의 채굴 속도입니다. (기본값 1.0))
damage_per_block: int, (이 도구로 블록을 부술 때 감소하는 내구도 수치입니다. 양의 정수여야 함, 기본값 1)
rules: [
blocks: "" 또는 [str array], (해당하는 블록의 ID 또는 태그(#)의 문자열 또는 리스트입니다.)
speed: float, (해당하는 블록을 캘 때 채굴 속도입니다. (선택사항))
correct_for_drops: bool (이 블록을 캘때 필요한 도구인지 여부입니다. (최고 효율, 아이템 드랍) 해당 블록의 전리품 테이블이 요구할 경우 필요합니다. (ex:돌, 흑요석) (선택사항))
]
}
51. trim
갑옷에 적용되는 장식 정보를 저장하는 구성요소입니다.
예시: /give @p minecraft:diamond_helmet[trim={pattern:coast,material:diamond,show_in_tooltip:false}]
다이아몬드 해안 갑옷 장식이 적용된 다이아몬드 헬멧을 얻습니다. 해당 헬멧의 툴팁은 가려집니다.
trim={
pattern: "", (적용될 장식 형판의 ID입니다.)
material: "", (적용될 장식의 재질입니다. 장식의 색에 반영됩니다.)
show_in_tooltip: bool (적용될 장식의 설명을 표시할지 여부입니다. (기본값 true))
}
52. unbreakable
이 구성요소가 존재하면 해당 아이템은 사용했을 때 내구도를 잃지 않습니다.
예시: /give @p minecraft:diamond_axe[minecraft:unbreakable={}]
부숴지지 않음을 가진 다이아 도끼를 얻습니다.
예시2: /give @p minecraft:diamond_axe[minecraft:unbreakable={show_in_tooltip:false}]
예시1 도끼의 부숴지지 않음 표시가 보여지지 않습니다.
unbreakable={
show_in_tooltip: bool (부숴지지 않음 표시가 보여질지 말지 결정합니다. (기본값 true))
}
53. writable_book_content
책과 깃펜의 내용을 담은 구성요소입니다.
예시1: /give @p minecraft:writable_book[minecraft:writable_book_content={pages:[{raw:"asdfaaaa",filtered:"asdf"},{raw:"aaaa"}]}]
1페이지: asdfaaaa, 2페이지: aaaa 인 책과 깃펜을 얻습니다.
예시2: /give @p minecraft:writable_book[minecraft:writable_book_content={pages:["asdf","asdffff"]}]
1페이지: asdf, 2페이지: asdffff 인 책과 깃펜을 얻습니다.
writable_book_content={
pages: [ (각 페이지의 정보를 담은 리스트입니다.)
{
raw: "", (페이지의 내용 문자열입니다. (줄바꿈에 \n이 사용되나 커맨드 입력기가 \n을 인식하지 못하므로 줄바꿈을 플레이어가 하거나 전리품 테이블을 사용해야합니다.))
filtered: "" (플레이어가 채팅 필터를 켰을 때 대체되는 문자열입니다. (선택사항))
}
]
}
각 페이지는 1개의 문자열로 표현될 수 있습니다. (예시2 참고)
54. written_book_content
쓰여진 책의 내용을 담은 구성요소입니다.
예시:
/give @p minecraft:written_book[minecraft:written_book_content={pages:[{raw:'[{"text":"너에게 온 편지는 없다. ", "color":"red"},{"selector":"@p"}]',filtered:"검열됨"}],title:{raw:"편지",filtered:"검열됨"},author:"누군가",generation:1,resolved:false}]
예시2:
/give @p minecraft:written_book[minecraft:written_book_content={pages:['안녕','{"text":"잘 지내니?"}','{"text":"나는 니 뒤에 있어","color":"red"}'],title:{raw:"편지",filtered:"검열됨"},author:"누군가",generation:1,resolved:false}]
- 설명 생략 -
written_book_content={
pages:[ (각 페이지의 내용을 담은 리스트입니다.)
{
raw: "", (페이지의 내용을 담은 JSON text 구성요소입니다. 줄바꿈의 경우 \\n을 사용하면 됩니다.)
filtered: "" ( 플레이어가 채팅 필터를 켰을 때 대체되는 JSON text 구성요소입니다. (선택사항))
}
(위와 마찬가지로 JSON text 문자열 집합으로 대체할 수 있습니다. 예시2 참고)
],
title: { (쓰여진 책의 제목입니다.)
raw: "", (제목 문자열입니다.)
filtered: "" (플레이어가 채팅 필터를 켰을 때 대체되는 문자열입니다.(선택사항))
},
author: "", (쓰여진 책의 작성자입니다.)
generation: int, (책이 복사된 회수입니다. 0 ~ 3 사이의 값(0 - 원본, 1 - 원본의 복사본, 2 - 복사본의 복사본, 3 - 낡음)이며 값이 1보다 크다면 책은 복사될 수 없습니다.(기본값 0))
resolved: bool (true일 경우 JSON text 구성요소의 selectors, scores 같은 부분이 이미 해결되었다고 보고 넘깁니다. false일 경우 맨 처음 연 플레이어를 기준으로 해당 부분을 채웁니다.(기본값 false))
(ex: true일 경우 예시1의 Potan7 부분이 @p로 변경됩니다.)
}
1.21.2 버전에서 해당 구성요소의 itle이 존재할 경우 custom_name, item_name보다 우선시되도록 변경되었습니다.
1.21 - jukebox_playable
설정될 경우 해당 아이템은 주크박스에 넣어 노래를 재생시킬 수 있습니다.
jukebox_playable={
song : 주크박스에 넣었을 때 재생될 주크박스 음악의 id입니다.
show_in_tooltip : false일 경우 song의 정보가 아이템 설명에 표시되지 않습니다. (기본값 true)
(예전에는 음악 디스크의 hide_additional_tooltip 구성요소에 의해 제어되었었습니다.)
1.21.2 - repairable
- 해당 구성요소가 존재하고 아이템이 데미지를 받을 수 있다면 모루를 사용해 아이템을 수리할 수 있습니다.
- 형식
- items: "아이템", [아이템 리스트], #아이템 태그, 이 아이템을 수리할 때 사용될 아이템입니다.
- 예시 : repairable={items:"stick"}
- 막대기로 수리할 수 있게 만듭니다.
- items: "아이템", [아이템 리스트], #아이템 태그, 이 아이템을 수리할 때 사용될 아이템입니다.
1.21.2 - enchantable
- 해당 구성요소가 존재하고 적용 가능한 마법 부여가 존재한다면 마법 부여대에서 마법 부여가 가능합니다.
- 형식
- value : 양의 정수, 값이 높을수록 더 높은 비용의 마법부여가 선택될 수 있습니다.
- enchantable={value:15}
- value : 양의 정수, 값이 높을수록 더 높은 비용의 마법부여가 선택될 수 있습니다.
- 형식
1.21.2 - use_remainder
- 존재할 경우 아이템이 사용되어 없어졌을 때 대체되는 아이템입니다.
- 만약 아이템이 소모된 후에도 아이템 스택이 남아있다면 인벤토리에 추가됩니다.
- 이때 인벤토리에 빈공간이 없다면 아이템은 땅에 떨어집니다.
- 형식 : use_remainer={ 아이템 정보 }
- use_remainder={id:'minecraft:stick', count:1, components:{"custom_name":'{"text":"asdf"}'}
- 사용 후 asdf 이름을 가진 막대기 1개를 얻습니다.
1.21.2 - use_cooldown
- 존재할 경우 사용된 이후에 같은 그룹에 속하는 모든 아이템에 쿨타임을 적용합니다.
- 형식
- seconds : 양의 실수로 사용 후 적용될 쿨타임(초)입니다.
- cooldown_group : 그룹을 나타내는 선택사항 네임스페이스 ID입니다.
- 존재할 경우 쿨다운 그룹의 일부가 되며 그룹이 없는 같은 종류의 아이템과도 쿨다운을 공유하지 않습니다.
- 대신 같은 쿨다운 그룹에 속한 아이템들과 쿨다운을 공유합니다.
- 예시 : use_cooldown={seconds:1.5, cooldown_group: "minecraft_custom_weapon"}
minecraft:consumable
- 존재할 경우 아이템을 사용해 소모할 수 있습니다.
- 만약 food, potion_contents, ominous_bottle_amplifier, suspicious_stew_contents 구성요소도 존재할 경우 해당 구성요소의 효과가 소모했을 때 적용됩니다.
- 형식
- consume_seconds : 음수가 아닌 실수, 플레이어가 소모할 때 걸리는 시간(초)입니다. (기본값 1.6)
- animation : 아이템을 소모할 때 사용할 애니메이션입니다. (기본값: eat)
- 사용가능 값들
- none, eat, drink, block, bow, spear, crossbow, spyglass, toot_horn, brush
- 사용가능 값들
- sound : 아이템의 소모 중, 완료에 사용되는 소리 이벤트입니다. (기본값: entity.generic.eat
- has_consume_particle : 참/거짓 값으로 아이템 소모 중 파티클이 발생할 지의 여부입니다. (기본값 true)
- on_consume_effects : 선택사항, 소모했을 때 발생하는 부가 효과 리스트입니다.
- 5개의 부가효과가 가능합니다.
- minecraft:apply_effects
- effects : 소모 후 적용될 포션 효과입니다.
- probability : 실수, 소모 후 적용 될 확률입니다. (기본값 1.0)
- minecraft:remove_effects
- effects : 소모 후 제거할 포션 효과의 id, list, tag 입니다.
- minecraft:clear_all_effects : 소모한 자의 모든 포션효과를 제거합니다.
- minecraft:teleport_randomly
- diameter : 양의 실수로 소모한 자가 이 값을 직경으로 랜덤한 장소에 텔레포트합니다. (기본값 16.0)
- minecraft:play_sound
- sound : 소모 후 재생될 사운드 이벤트입니다.
- 예시
- consumable{consume_seconds:3.0, animation:'eat', sound:'entity.generic.eat', has_consume_particles:true, on_consume_effects:[{type:'minecraft:clear_all_effects'}]}
- 3초 동안 섭취하며 먹은 후 모든 포션효과를 지웁니다.
1.21.2 - item_model
- 아이템의 모델을 조정하는 구성요소로 모든 아이템에 존재합니다.
- 형식
- namespace:id : 아이템 모델의 경로입니다. (/assets/<namespace>/models/item/<id>
1.21.2 - equippable
- 존재할 경우 이 아이템은 설정된 슬롯에 장착할 수 있습니다.
- 형식
- slot : 장착할 슬롯으로 다음 중 하나입니다. head, chest, legs, feet, body, mainhand, offhand
- equip_sound : (선택사항) 장착할 때 재생될 소리 이벤트입니다.
- 설정되지 않을 경우 기본 갑옷 장착 소리가 재생됩니다.
- model (-> asset_id) : (선택사항) 장착했을 때 사용될 모델의 namespaced ID 입니다.
- 이러한 모델의 정의는 리소스팩에서 불러옵니다.
- 설정되지 않을 경우 머리에 있을 땐 아이템 자체로 렌더링합니다. (그 외에는 렌더링하지 않음)
- camera_overlay : (선택사항) 장착했을 때 사용될 오버레이 텍스쳐의 namespaced ID 입니다.
- 설정되지 않을 경우 오버레이를 쓰지 않습니다.
- ID는 텍스쳐 파일의 경로로 자동으로 textures/ ID .png 형태로 설정됩니다.
- 예를 들어, 조각된 호박은 misc/pumpkinblur ID를 가지고 있습니다. 이럴 경우 파일 경로는 자동으로 textures/misc/pumpkinblur.png 로 설정됩니다.
- allowd_entities : (선택사항) 엔티티 ID, 엔티티 태그, 엔티티 ID 리스트 중 하나를 넣을 수 있습니다.
- 해당 아이템을 장착할 수 있는 엔티티입니다.
- 설정되지 않을 경우 이러한 유형의 아이템을 장착할 수 있는 모든 엔티티가 장착 가능합니다.
- dispensable : (선택사항) 발사기를 통해 장착할 수 있는 지의 여부입니다. (기본값 true)
- true 여도 해당 아이템이 발사기에 대해 특수 상호작용이 있을 경우 장착되지 않습니다.
- swapable : (선택사항) 손에 들고 우클릭으로 바로 장착할 수 있는 지 여부입니다. (기본값 true)
- damage_on_hurt : (선택사항) 장착한 엔티티가 데미지를 입을 때 내구도가 감소하는지 여부입니다. (기본값 true)
- 예시 : equippable={slot:'chest',equip_sound:'item.armor.equip_chain'}
1.21.4버전에서 model 항목이 asset_id로 변경되었습니다.
1.21.2 - glider
- 존재할 경우 장착했을 때 플레이어에게 활공 (겉날개 비행) 할 수 있는 능력을 부여합니다.
- 형식 : ( glider = {} )
1.21.2 - tooltip_style
- 존재할 경우 아이템 설명칸의 프레임과 배경이 커스텀 이미지를 사용합니다.
- 형식 : 툴팁 스타일의 namepaced ID입니다.
- <namespace>:tooltip/<경로>_background 와 <namespace>:tooltip/<경로>_frame 이미지를 사용합니다.
- 예시 : tooltip_style='potan:special_sword'
- potan:tooltip/special_sword_background 와 potan:tooltip/special_sword_frame을 사용합니다.
- 형식 : 툴팁 스타일의 namepaced ID입니다.
- tooltip_style을 적용하는 방법 보러가기
1.21.2 - death_protection
- 존재할 경우 이 아이템을 들고 있을때 죽음으로부터 보호하고 하트 반칸을 회복합니다.
- 형식
- death_effects : (선택사항) 죽음으로부터 보호했을 때 적용되는 포션 효과 리스트입니다.
- consumable 구성요소의 on_consume_effect와 동일하게 넣을 수 있습니다.
- death_effects : (선택사항) 죽음으로부터 보호했을 때 적용되는 포션 효과 리스트입니다.
- 형식
'마인크래프트 강좌 > 명령어 강좌' 카테고리의 다른 글
마인크래프트 아이템 구성요소 tooltip_style을 사용해보자 (0) | 2024.11.15 |
---|---|
마인크래프트 /return 강좌 (0) | 2024.06.22 |
마인크래프트 질문 - 보고있는 대상에게 명령어가 발동되게 해보자 (9) | 2021.03.26 |
distance=1 과 distance=..1의 차이 그리고 ..에 대하여 (8) | 2020.04.09 |
마인크래프트 /data modify 강좌 (6) | 2019.10.27 |