Difference between revisions of "Slot Data"

From wiki.vg
Jump to: navigation, search
m (Add categories "Protocol Details" and "Minecraft Modern")
m (1.8)
Line 5: Line 5:
 
The structure consists of at least a short, which gives the item/block ID [http://www.minecraftwiki.net/wiki/Block_ids]. A value of <code>-1</code> signifies that the slot is empty, and no further data follows.
 
The structure consists of at least a short, which gives the item/block ID [http://www.minecraftwiki.net/wiki/Block_ids]. A value of <code>-1</code> signifies that the slot is empty, and no further data follows.
  
If the block ID is not <code>-1</code>, three more fields follow. These fields are a byte (item count), a short (item damage), and another short (length of optional NBT data).
+
If the block ID is not <code>-1</code>, three more fields follow. These fields are a byte (item count), a short (item damage) and another byte.
  
If the short (length of NBT data) is <code>-1</code>, there is no NBT data, and no further data follows. Otherwise, a byte array will follow.
+
If the byte is <code>0</code>, there is no NBT data, and no further data follows. Otherwise the byte is the start of the nbt blob
  
The byte array contains gzipped (that is RFC 1952 rather than RFC 1950) [[NBT]] data. The format of this data is as follows:
+
The format of this data is as follows:
  
 
<code>
 
<code>

Revision as of 09:02, 2 September 2014

The slot data structure is how Minecraft represents an item and its associated data in the minecraft protocol

Format

The structure consists of at least a short, which gives the item/block ID [1]. A value of -1 signifies that the slot is empty, and no further data follows.

If the block ID is not -1, three more fields follow. These fields are a byte (item count), a short (item damage) and another byte.

If the byte is 0, there is no NBT data, and no further data follows. Otherwise the byte is the start of the nbt blob

The format of this data is as follows:

 COMPOUND: ''
   LIST: 'ench'
     COMPOUND
       SHORT: 'id'
       SHORT: 'lvl'
     END
     COMPOUND
       ...etc
     END
 END

Each of the inner, untagged COMPOUNDs represents an enchantment, with its ID[2] and level given as child SHORT elements.

Examples

 ff ff                            | empty slot
 01 16 01 00 00 ff ff             | a diamond pickaxe
 01 16 01 00 00 00 04 CA FE BA BE | a diamond pickaxe with (made-up) NBT data