Difference between revisions of "Slot Data"

From wiki.vg
Jump to navigation Jump to search
(Fix incomplete link)
m
(One intermediate revision by one other user not shown)
Line 1: Line 1:
 
The '''Slot''' data structure is how Minecraft represents an item and its associated data in the [[Protocol|Minecraft Protocol]].
 
The '''Slot''' data structure is how Minecraft represents an item and its associated data in the [[Protocol|Minecraft Protocol]].
  
=== [[Slot]] ===
+
=== Slot ===
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 7: Line 7:
 
  ! Type
 
  ! Type
 
  ! Meaning
 
  ! Meaning
 +
|-
 +
| Present
 +
| Boolean
 +
| True if there is an item in this position; false if it is empty.
 
  |-
 
  |-
 
  | Item ID
 
  | Item ID
  | Short
+
  | Optional VarInt
  | The {{Minecraft Wiki|Data values#Block IDs|item ID}}. A value of <code>-1</code> signifies that the slot is empty, and no further data follows. Item IDs are distinct from block IDs; see [[Data Generators]] for more information
+
  | The {{Minecraft Wiki|Java Edition data values#Blocks|item ID}}. Not present if present is false. Item IDs are distinct from block IDs; see [[Data Generators]] for more information
 
  |-
 
  |-
 
  | Item Count
 
  | Item Count
 
  | Optional Byte
 
  | Optional Byte
  | Not present if Item ID is <code>-1</code>.
+
  | Not present if present is false.
 
  |-
 
  |-
 
  | NBT
 
  | NBT
 
  | Optional NBT
 
  | Optional NBT
  | Not present if Item ID is <code>-1</code>. If 0, there is no NBT data, and no further data follows. Otherwise the byte is the start of an NBT blob as shown below:
+
  | Not present if present is false. If 0 (TAG_End), there is no NBT data, and no further data follows. Otherwise the byte is the start of an NBT blob as shown below:
 
  |}
 
  |}
  
Line 43: Line 47:
  
 
<pre>
 
<pre>
   ff ff                     | empty slot
+
   00                     | empty slot
   01 16 01 00               | a diamond pickaxe
+
   01 01 01 00             | a stone block
   01 16 01 01 04 CA FE BA BE | a diamond pickaxe with (made-up) NBT data
+
   01 01 01 04 CA FE BA BE | a stone block with (made-up) NBT data
 
</pre>
 
</pre>
  
 
[[Category:Protocol Details]]
 
[[Category:Protocol Details]]
 
[[Category:Minecraft Modern]]
 
[[Category:Minecraft Modern]]

Revision as of 01:49, 23 December 2019

The Slot data structure is how Minecraft represents an item and its associated data in the Minecraft Protocol.

Slot

Name Type Meaning
Present Boolean True if there is an item in this position; false if it is empty.
Item ID Optional VarInt The item ID. Not present if present is false. Item IDs are distinct from block IDs; see Data Generators for more information
Item Count Optional Byte Not present if present is false.
NBT Optional NBT Not present if present is false. If 0 (TAG_End), there is no NBT data, and no further data follows. Otherwise the byte is the start of an NBT blob as shown below:
  COMPOUND ''
    LIST 'StoredEnchantments'
      COMPOUND
        SHORT 'id'
        SHORT 'lvl'
      END
      COMPOUND
        ...
      END
      ...
    END
    INT 'Unbreakable'
    ...
  END

See NBT for more information about the NBT format, and here for the contained information and its format. Note that tool durability is included in NBT, among other things.

Examples

  00                      | empty slot
  01 01 01 00             | a stone block
  01 01 01 04 CA FE BA BE | a stone block with (made-up) NBT data