Pre-release protocol

From wiki.vg
Revision as of 05:33, 15 November 2011 by Barneygale (talk | contribs) (→‎Changed packets: Update progress bar (0x69) gives enchantment table data.)
Jump to navigation Jump to search

This page documents the changes from the last stable Minecraft release (currently 1.8.1) to the current pre-release (currently 1.0RC2)

New packets

Enchant Item (0x6C)

Client to Server only

Packet ID Field Name Field Type Example Notes
0x6C Window ID byte 1 The ID sent by 0x64
Enchantment byte 0 The position of the enchantment on the enchantment table window, starting with 0 as the topmost one.
Total Size: 3 bytes

Changed packets

"Slot" type change

Four packets changed:

This change affects the "slot" datatype. This type consists of at least a short (item_id). If this id isn't -1, a byte (count) and a short (uses) follow.

From 1.9pre2 onward, additional data is sent but only for certain item_ids. This means the protocol is no longer context free. The additional data is at least a short. If this short isn't -1, a byte[] array follows, containing gzipped NBT data

As of 1.9pre3, the format of the NBT is as follows

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

Experience (0x2B)

Packet ID Field Name Field Type Example Notes
0x2B Experience bar float 0.5960060358047485 Used for drawing the experience bar - value is between 0 and 1.
Level short 8
Total experience short 130
Total Size: 9 bytes

Update progress bar (0x69)

Now used to list available enchantments in the enchantment table. The "progress bar" field is the index - 0, 1 or 2. The "value" field gives the enchantment's level.

This field should probably be renamed to "Window property change" or something.

Other changes

Protocol version is 20, as of 1.9pre4

New mobs: Blaze, Magma Cube, Ender Dragon, Snowman, Villager

Notchian server features two new protocols: RCON (server class: o.java) and Query (server class: su.java)

Protocol History

2011-11-13

  • 1.0rc2
  • Protocol version is not changed
  • Client gives invalid server key when authentication hash is 8 bytes and the first byte is > 0x80
  • Bow has extra metadata as slot item.

2011-11-11

  • Beta 1.9 pre6.
  • Protocol version is now 22
  • NewState: Reason 4 = Enter scrolling text mode after slaying the dragon.
  • New entity: EnderCrystal (Spawned using the Add Object/Vehicle (0x17) packet with type 51)

2011-10-27

  • Beta 1.9 pre5.
  • Protocol version is now 21
  • Packet 0x6B (Create Inventory) changed: uses Slot datatype.

2011-10-13

  • Beta 1.9 pre4.
  • Protocol version is now 20
  • Packet 0x2B (Experience) changed: now (float, short, short)
  • New packet 0x6C (Enchant item) added: (byte, byte)
  • Flint and steel no longer enchantable (see 1.9pre3 changes). Might be others, too.
  • Notchian server now features an RCON server (server class: o.java)
  • Notchian server now features "G4S" server [1]

2011-9-29

  • Beta 1.9 pre2.
  • Protocol version is now 19
  • Four packets changed:
  • The change affects the "slot" datatype. This type consists of at least a short (item_id). If this id isn't -1, a byte (count) and a short (uses) follow.
  • From 1.9pre2 onward, additional data is sent but only for certain item_ids. This means the protocol is no longer context free. The additional data is at least a short. If this short isn't -1, a byte[] array follows, containing gzipped NBT data
  • The format of the NBT is as follows

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

  • So far only this format, with 'id' and 'lvl' set to 2 and 1 respectively, has been seen.

2011-9-22

  • Beta 1.9 pre1.
  • Protocol version is now 18