Difference between revisions of "Slot Data"

From wiki.vg
Jump to: navigation, search
(add link to nbt page)
(update format)
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]].
  
 
== Format ==
 
== Format ==
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 byte.
+
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 at least another byte.
  
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
+
If the byte is <code>0</code>, there is no NBT data, and no further data follows. Otherwise the byte is the start of an NBT blob of the following format:
  
The format of this data is as follows:
+
<pre>
 
+
   COMPOUND <nowiki>''</nowiki>
<code>
+
     LIST 'StoredEnchantments'
   COMPOUND: <nowiki>''</nowiki>
 
     LIST: 'ench'
 
 
       COMPOUND
 
       COMPOUND
         SHORT: 'id'
+
         SHORT 'id'
         SHORT: 'lvl'
+
         SHORT 'lvl'
 
       END
 
       END
 
       COMPOUND
 
       COMPOUND
         ...etc
+
         ...
 
       END
 
       END
 +
      ...
 +
    END
 +
    INT 'Unbreakable'
 +
    ...
 
   END
 
   END
</code>
+
</pre>
 
 
Each of the inner, untagged COMPOUNDs represents an enchantment, with its ID[http://www.minecraftwiki.net/wiki/Enchantment#Enchantment_Types] and level given as child SHORT elements.
 
  
See [[NBT]] for more information about the NBT format.
+
See [[NBT]] for more information about the NBT format, and [http://minecraft.gamepedia.com/Player.dat_format#Item_structure here] for the contained information and its format.
  
 
== Examples ==
 
== Examples ==
  
<code>
+
<pre>
 
   ff ff                            | empty slot
 
   ff ff                            | empty slot
 
   01 16 01 00 00 00                | a diamond pickaxe
 
   01 16 01 00 00 00                | a diamond pickaxe
 
   01 16 01 00 00 01 04 CA FE BA BE | a diamond pickaxe with (made-up) NBT data
 
   01 16 01 00 00 01 04 CA FE BA BE | a diamond pickaxe with (made-up) NBT data
</code>
+
</pre>
  
 
[[Category:Protocol Details]]
 
[[Category:Protocol Details]]
 
[[Category:Minecraft Modern]]
 
[[Category:Minecraft Modern]]

Revision as of 00:32, 15 April 2016

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 at least another byte.

If the byte is 0, there is no NBT data, and no further data follows. Otherwise the byte is the start of an NBT blob of the following format:

  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.

Examples

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