마인크래프트 강좌/명령어 강좌

마인크래프트 자바에디션 Item components 강좌

Potan 2024. 4. 7. 23:38
반응형

마인크래프트 자바에디션 1.20.5 프리릴리즈1을 기준으로 작성되었습니다.

 

1. Item components 란?

기존의 아이템은 nbt 태그로 이루어졌습니다. 

tag 속에 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 태그는 제외됩니다.
}

 

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든 전부 가능합니다.

 

15. custom_model_data

아이템의 모델을 변경할 수 있는 구성요소입니다

예시:
/give @p minecraft:stick[minecraft:custom_model_data=10]
10에 할당된 아이템 모델을 가진 stick을 얻습니다.

custom_model_data=int (리소스팩에 미리 설정된 id - model 에 따라 모델을 불러옵니다.)

 

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에 영향을 받지 않습니다.)
}

 

23.fire_resistanet

해당 구성요소가 존재한다면 이 아이템은 불이나 용암에 불타지 않습니다. (네더라이트처럼)

예시:
/give @p minecraft:stick[minecraft:fire_resistant={}]
불이나 용암에 타지 않는 막대기를 얻습니다.

fire_resistnat= {} ( 빈 오브젝트 형식으로 안에 들어가는 데이터는 없습니다.)

 

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))
    }, {...}, ...
  ]
}

 

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 구성요소를 사용합니다.)

 

32. lock

상자류 블록들은 해당 구성요소의 값과 일치하는 custom_name 아이템으로만 열 수 있습니다. (item_name 불가능) 설치할 때 해당 블록의 NBT 태그로 복사됩니다.

예시: /give @p chest[minecraft:lock="asdf"]
asdf 라는 이름을 가진 아이템으로만 열 수 있는 상자를 얻습니다.

lock="" (해당 블록을 열 수 있는 아이템 이름을 적습니다)

 

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_whitebanner_orangebanner_magentabanner_light_bluebanner_yellowbanner_limebanner_pinkbanner_graybanner_light_graybanner_cyanbanner_purplebanner_bluebanner_brownbanner_greenbanner_redbanner_black
red_x
village_desert, village_plainsvillage_savannavillage_snowyvillage_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

 

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로 변경됩니다.)
}

반응형