Difference between revisions of "User:WinX64/Slot Data"

From wiki.vg
Jump to navigation Jump to search
m (→‎Block Predicate: Better description)
(Content moved to the page on the main namespace)
Tag: Blanking
 
(12 intermediate revisions by the same user not shown)
Line 1: Line 1:
The '''Slot''' data structure defines how an item is represented when inside an inventory window of any kind, such as a chest or furnace.
 
  
This page presents the new Slot data structure, using structured components. You can find the documentation of the old structure, that utilizes raw NBT data, [[Special:Permalink/18899|here]].
 
 
= Format =
 
 
Some description does here.
 
 
{| class="wikitable"
 
! colspan="2"| Name
 
! colspan="2"| Type
 
! Meaning
 
|-
 
| colspan="2"| Item Count
 
| colspan="2"| {{Type|VarInt}}
 
| The item count. Every following field is only present if this value is greater than zero.
 
|-
 
| colspan="2"| Item ID
 
| colspan="2"| {{Type|Optional}} {{Type|VarInt}}
 
| The {{Minecraft Wiki|Java Edition data values#Blocks|item ID}}. Item IDs are distinct from block IDs; see [[Data Generators]] for more information.
 
|-
 
| colspan="2"| Number of components to add
 
| colspan="2"| {{Type|Optional}} {{Type|VarInt}}
 
| Number of elements present in the first data component array
 
|-
 
| colspan="2"| Number of components to remove
 
| colspan="2"| {{Type|Optional}} {{Type|VarInt}}
 
| Number of elements present in the second data component array. This serve as a way to remove the default component values that are present on some items.
 
|-
 
| rowspan="2"| Components to add
 
| Component type
 
| rowspan="2"| {{Type|Optional}} {{Type|Array}}
 
| {{Type|Optional}} {{Type|VarInt}} {{Type|Enum}}
 
| colspan="2"| The type of component. See [[#Structured_components|Structured components]] for more detail.
 
|-
 
| Component data
 
| {{Type|Optional}} Varies
 
| colspan="1"| The component-dependent data. See [[#Structured_components|Structured components]] for more detail.
 
|-
 
| rowspan="1"| Components to remove
 
| Component type
 
| rowspan="1"| {{Type|Optional}} {{Type|Array}}
 
| {{Type|Optional}} {{Type|VarInt}} {{Type|Enum}}
 
| colspan="2"| The type of component. See [[#Structured_components|Structured components]] for more detail.
 
|-
 
|}
 
 
== Structured components ==
 
 
The complete list of available components is described below. Items marked in blue cause no noticeable impact on the client, and mainly concern server-side operations.
 
 
For a more in-depth description, and information on how the items below are encoded with the NBT format, check [https://minecraft.wiki/w/Data_component_format here].
 
 
{| class="wikitable"
 
! Type
 
! Name
 
! Description
 
! Data
 
|-
 
| 0
 
| <code>minecraft:custom_data</code>
 
| Customizable data that doesn't fit any specific component.
 
| As follows:
 
  {| class="wikitable"
 
    ! Name
 
    ! Type
 
    ! Description
 
    |-
 
    | Data
 
    | {{Type|NBT}}
 
    | Always a Compound Tag.
 
    |}
 
|-
 
| 1
 
| <code>minecraft:max_stack_size</code>
 
| Maximum stack size for the item.
 
| As follows:
 
  {| class="wikitable"
 
    ! Name
 
    ! Type
 
    ! Description
 
    |-
 
    | Max stack size
 
    | {{Type|VarInt}}
 
    | Ranges from 1 to 99.
 
    |}
 
|-
 
| 2
 
| <code>minecraft:max_damage</code>
 
| The maximum damage the item can take before breaking.
 
| As follows:
 
  {| class="wikitable"
 
    ! Name
 
    ! Type
 
    ! Description
 
    |-
 
    | Max damage
 
    | {{Type|VarInt}}
 
    |
 
    |}
 
|-
 
| 3
 
| <code>minecraft:damage</code>
 
| The current damage of the item.
 
| As follows:
 
  {| class="wikitable"
 
    ! Name
 
    ! Type
 
    ! Description
 
    |-
 
    | Damage
 
    | {{Type|VarInt}}
 
    |
 
    |}
 
|-
 
| 4
 
| <code>minecraft:unbreakable</code>
 
| Marks the item as unbrekable.
 
| As follows:
 
  {| class="wikitable"
 
    ! Name
 
    ! Type
 
    ! Description
 
    |-
 
    | Show in tooltip
 
    | {{Type|Boolean}}
 
    | Whether the Unbreakable indicator should be shown on the item's tooltip.
 
    |}
 
|-
 
| 5
 
| <code>minecraft:custom_name</code>
 
| Item's custom name.<br>Normally shown in italic, and changeable at an anvil.
 
| As follows:
 
  {| class="wikitable"
 
    ! Name
 
    ! Type
 
    ! Description
 
    |-
 
    | Name
 
    | {{Type|Text Component}}
 
    |
 
    |}
 
|-
 
| 6
 
| <code>minecraft:item_name</code>
 
| Override for the item's default name.<br>Shown when the item has no custom name.
 
| As follows:
 
  {| class="wikitable"
 
    ! Name
 
    ! Type
 
    ! Description
 
    |-
 
    | Name
 
    | {{Type|Text Component}}
 
    |
 
    |}
 
|-
 
| 7
 
| <code>minecraft:lore</code>
 
| Item's lore.
 
| As follows:
 
  {| class="wikitable"
 
    ! Name
 
    ! Type
 
    ! Description
 
    |-
 
    | Number of lines
 
    | {{Type|VarInt}}
 
    | Number of elements in the following array.
 
    |-
 
    | Lines
 
    | {{Type|Array}} of {{Type|Text Component}}
 
    |
 
    |}
 
|-
 
| 8
 
| <code>minecraft:rarity</code>
 
| Item's rarity.<br>This affects the default color of the item's name.
 
| As follows:
 
  {| class="wikitable"
 
    ! Name
 
    ! Type
 
    ! Description
 
    |-
 
    | Rarity
 
    | {{Type|VarInt}} {{Type|Enum}}
 
    | Can be one of the following:
 
* 0 - Common (white)
 
* 1 - Uncommon (yellow)
 
* 2 - Rare (aqua)
 
* 3 - Epic (pink)
 
|}
 
|-
 
| 9
 
| <code>minecraft:enchantments</code>
 
| The enchantments of the item.
 
| As follows:
 
  {| class="wikitable"
 
    ! colspan="2"| Name
 
    ! colspan="2"| Type
 
    ! Description
 
    |-
 
    | colspan="2"| Number of enchantments
 
    | colspan="2"| {{Type|VarInt}}
 
    | Number of elements in the following array.
 
    |-
 
    | rowspan="2"| Enchantment
 
    | Type ID
 
    | rowspan="2"| {{Type|Array}}
 
    | {{Type|VarInt}} {{Type|Enum}}
 
    | The ID of the enchantment in the enchantment registry.
 
    |-
 
    | Level
 
    | {{Type|VarInt}}
 
    | The level of the enchantment.
 
    |-
 
    | colspan="2"| Show in tooltip
 
    | colspan="2"| {{Type|Boolean}}
 
    | Whether the list of enchantments should be shown on the item's tooltip.
 
    |}
 
|-
 
| 10
 
| <code>minecraft:can_place_on</code>
 
| List of blocks this block can be placed on when in adventure mode.
 
| As follows:
 
  {| class="wikitable"
 
    ! Name
 
    ! Type
 
    ! Description
 
    |-
 
    | Number of predicates
 
    | {{Type|VarInt}}
 
    | Number of elements in the following array.
 
    |-
 
    | Block predicates
 
    | {{Type|Array}} of [[#Block_Predicate|Block Predicate]]
 
    |
 
    |-
 
    | Show in tooltip
 
    | {{Type|Boolean}}
 
    | Whether the list of blocks should be shown on the item's tooltip.
 
    |}
 
|-
 
| 11
 
| <code>minecraft:can_break</code>
 
| List of blocks this item can break when in adventure mode.
 
| As follows:
 
  {| class="wikitable"
 
    ! Name
 
    ! Type
 
    ! Description
 
    |-
 
    | Number of predicates
 
    | {{Type|VarInt}}
 
    | Number of elements in the following array.
 
    |-
 
    | Block predicates
 
    | {{Type|Array}} of [[#Block_Predicate|Block Predicate]]
 
    |
 
    |-
 
    | Show in tooltip
 
    | {{Type|Boolean}}
 
    | Whether the list of blocks should be shown on the item's tooltip.
 
    |}
 
|-
 
| 12
 
| <code>minecraft:attribute_modifiers</code>
 
| The attribute modifiers of the item.
 
| As follows:
 
  {| class="wikitable"
 
    ! colspan="2"| Name
 
    ! colspan="2"| Type
 
    ! Description
 
    |-
 
    | colspan="2"| Number of attributes
 
    | colspan="2"| {{Type|VarInt}}
 
    | Number of elements in the following array.
 
    |-
 
    | rowspan="6"| Attribute
 
    | Type ID
 
    | rowspan="6"| {{Type|Array}}
 
    | {{Type|VarInt}} {{Type|Enum}}
 
    | The ID of the attribute.
 
    |-
 
    | Unique ID
 
    | {{Type|UUID}}
 
    | The attribute's unique ID.
 
    |-
 
    | Name
 
    | {{Type|String}}
 
    | The attribute's name.
 
    |-
 
    | Value
 
    | {{Type|Double}}
 
    | The attribute's value.
 
    |-
 
    | Operation
 
    | {{Type|VarInt}} {{Type|Enum}}
 
    | The operation to be applied upon the value. Can be one of the following:
 
* 0 - Add
 
* 1 - Multiply base
 
* 2 - Multiply total
 
    |-
 
    | Slot
 
    | {{Type|VarInt}} {{Type|Enum}}
 
    | The item slot placement required for the attribute to have effect.<br>Can be one of the following:
 
* 0 - Any
 
* 1 - Main hand
 
* 2 - Off hand
 
* 3 - Hand
 
* 4 - Feet
 
* 5 - Legs
 
* 6 - Chest
 
* 7 - Head
 
* 8 - Armor
 
* 9 - Body
 
    |-
 
    | colspan="2"| Show in tooltip
 
    | colspan="2"| {{Type|Boolean}}
 
    | Whether the list of attributes should be shown on the item's tooltip.
 
    |}
 
|-
 
| 13
 
| <code>minecraft:custom_model_data</code>
 
| Value for the item predicate when using custom item models.<br>More info can be found [https://minecraft.wiki/w/Tutorials/Models#Item_predicates here].
 
| As follows:
 
  {| class="wikitable"
 
    ! Name
 
    ! Type
 
    ! Description
 
    |-
 
    | Value
 
    | {{Type|VarInt}}
 
    |
 
    |}
 
|-
 
| 14
 
| <code>minecraft:hide_additional_tooltip</code>
 
| {{Need Info|What is considered as "additional"? What exact items does this hide?}}
 
| None.
 
|-
 
| 15
 
| <code>minecraft:hide_tooltip</code>
 
| Hides the item's tooltip altogether.
 
| None.
 
|-
 
| 16
 
| <code>minecraft:repair_cost</code>
 
| Description here.
 
| Data here.
 
|-
 
| 17
 
| <code>minecraft:creative_slot_lock</code>
 
| Description here.
 
| None.
 
|-
 
| 18
 
| <code>minecraft:enchantment_glint_override</code>
 
| Description here.
 
| Data here.
 
|-
 
| 19
 
| <code>minecraft:intangible_projectile</code>
 
| Description here.
 
| Data here.
 
|-
 
| 20
 
| <code>minecraft:food</code>
 
| Description here.
 
| Data here.
 
|-
 
| 21
 
| <code>minecraft:fire_resistant</code>
 
| Description here.
 
| None.
 
|-
 
| 22
 
| <code>minecraft:tool</code>
 
| Description here.
 
| Data here.
 
|-
 
| 23
 
| <code>minecraft:stored_enchantments</code>
 
| Description here.
 
| Data here.
 
|-
 
| 24
 
| <code>minecraft:dyed_color</code>
 
| Description here.
 
| Data here.
 
|-
 
| 25
 
| <code>minecraft:map_color</code>
 
| Description here.
 
| Data here.
 
|-
 
| 26
 
| <code>minecraft:map_id</code>
 
| Description here.
 
| Data here.
 
|-
 
| 27
 
| <code>minecraft:map_decorations</code>
 
| Description here.
 
| Data here.
 
|-
 
| 28
 
| <code>minecraft:map_post_processing</code>
 
| Description here.
 
| Data here.
 
|-
 
| 29
 
| <code>minecraft:charged_projectiles</code>
 
| Description here.
 
| Data here.
 
|-
 
| 30
 
| <code>minecraft:bundle_contents</code>
 
| Description here.
 
| Data here.
 
|-
 
| 31
 
| <code>minecraft:potion_contents</code>
 
| Description here.
 
| Data here.
 
|-
 
| 32
 
| <code>minecraft:suspicious_stew_effects</code>
 
| Description here.
 
| Data here.
 
|-
 
| 33
 
| <code>minecraft:writable_book_content</code>
 
| Description here.
 
| Data here.
 
|-
 
| 34
 
| <code>minecraft:written_book_content</code>
 
| Description here.
 
| Data here.
 
|-
 
| 35
 
| <code>minecraft:trim</code>
 
| Description here.
 
| Data here.
 
|-
 
| 36
 
| <code>minecraft:debug_stick_state</code>
 
| Description here.
 
| Data here.
 
|-
 
| 37
 
| <code>minecraft:entity_data</code>
 
| Description here.
 
| Data here.
 
|-
 
| 38
 
| <code>minecraft:bucket_entity_data</code>
 
| Description here.
 
| Data here.
 
|-
 
| 39
 
| <code>minecraft:block_entity_data</code>
 
| Description here.
 
| Data here.
 
|-
 
| 40
 
| <code>minecraft:instrument</code>
 
| Description here.
 
| Data here.
 
|-
 
| 41
 
| <code>minecraft:ominous_bottle_amplifier</code>
 
| Description here.
 
| Data here.
 
|-
 
| 42
 
| <code>minecraft:recipes</code>
 
| Description here.
 
| Data here.
 
|-
 
| 43
 
| <code>minecraft:lodestone_tracker</code>
 
| Description here.
 
| Data here.
 
|-
 
| 44
 
| <code>minecraft:firework_explosion</code>
 
| Description here.
 
| Data here.
 
|-
 
| 45
 
| <code>minecraft:fireworks</code>
 
| Description here.
 
| Data here.
 
|-
 
| 46
 
| <code>minecraft:profile</code>
 
| Description here.
 
| Data here.
 
|-
 
| 47
 
| <code>minecraft:note_block_sound</code>
 
| Description here.
 
| Data here.
 
|-
 
| 48
 
| <code>minecraft:banner_patterns</code>
 
| Description here.
 
| Data here.
 
|-
 
| 49
 
| <code>minecraft:base_color</code>
 
| Description here.
 
| Data here.
 
|-
 
| 50
 
| <code>minecraft:pot_decorations</code>
 
| Description here.
 
| Data here.
 
|-
 
| 51
 
| <code>minecraft:container</code>
 
| Description here.
 
| Data here.
 
|-
 
| 52
 
| <code>minecraft:block_state</code>
 
| Description here.
 
| Data here.
 
|-
 
| 53
 
| <code>minecraft:bees</code>
 
| Description here.
 
| Data here.
 
|-
 
| 54
 
| <code>minecraft:lock</code>
 
| Description here.
 
| Data here.
 
|-
 
| 55
 
| <code>minecraft:container_loot</code>
 
| Description here.
 
| Data here.
 
|}
 
 
== Other types ==
 
 
Common types used in multiple components are described below.
 
 
=== Block Predicate ===
 
 
Describes a predicate used when block filtering is necessary. It can be parameterized to account for the type of block, the values of specific block state properties, NBT data related to block entities, or any combination of three.
 
 
{| class="wikitable"
 
! Name
 
! Type
 
! Description
 
|-
 
| Has Blocks
 
| {{Type|Boolean}}
 
| Whether this predicate is tied to specific types of blocks.
 
|-
 
| Blocks
 
| {{Type|Optional}} Blocks
 
| See Blocks structure below. Only present if Has Blocks is true.
 
|-
 
| Has Properties
 
| {{Type|Boolean}}
 
| Whether this predicate is tied to specific properties of a block.
 
|-
 
| Number of Properties
 
| {{Type|Optional}} {{Type|VarInt}}
 
| Number of elements in the following array. Only present if Has Properties is true.
 
|-
 
| Properties
 
| {{Type|Optional}} {{Type|Array}} of Property
 
| See Property structure below. Only present if Has Properties is true.
 
|-
 
| Has NBT
 
| {{Type|Boolean}}
 
| Whether this predicate is tied to specific block entity data.
 
|-
 
| NBT
 
| {{Type|Optional}} {{Type|NBT}}
 
| Only present is Has NBT is true.
 
|}
 
 
The Blocks structure is defined as follows:
 
 
{| class="wikitable"
 
! Name
 
! Type
 
! Description
 
|-
 
| Type
 
| {{Type|VarInt}}
 
| Identifier used to determine the data that follows. It can be either:
 
* 0 - Represents a named set of blocks, defined by a tag.
 
* Anything else - Represents an enumerated set of blocks, defined by block IDs.
 
|-
 
| Tag name
 
| {{Type|Optional}} {{Type|Identifier}}
 
| A tag representing a set of blocks. Only present if Type is 0.
 
|-
 
| Block IDs
 
| {{Type|Optional}} {{Type|Array}} of {{Type|VarInt}}
 
| An array of block IDs. Only present if Type is not 0.<br>The size of the array is equal to <code>Type - 1</code>.
 
|}
 
 
The Property structure is defined as follows:
 
 
{| class="wikitable"
 
! Name
 
! Type
 
! Description
 
|-
 
| Name
 
| {{Type|String}}
 
| Name of the block state property.
 
|-
 
| Is Exact Match
 
| {{Type|Boolean}}
 
| Whether this is an exact value match, as opposed to ranged.
 
|-
 
| Exact Value
 
| {{Type|Optional }} {{Type|String}}
 
| Value of the block state property. Only present in exact match mode.
 
|-
 
| Min Value
 
| {{Type|Optional}} {{Type|String}}
 
| Minimum value of the block state property range. Only present in ranged match mode.
 
|-
 
| Max Value
 
| {{Type|Optional}} {{Type|String}}
 
| Maximum value of the block state property range. Only present in ranged match mode.
 
|}
 
 
[[Category:Protocol Details]]
 
[[Category:Minecraft Modern]]
 

Latest revision as of 13:53, 14 June 2024