Pre-release protocol: Difference between revisions

From wiki.vg
Jump to navigation Jump to search
imported>Momothereal
(17w13b)
imported>Pokechu22
(→‎Play: Add packets)
Line 300: Line 300:


No changes so far.
No changes so far.
== Play ==
=== Clientbound ===
==== Advancements ====
{| class="wikitable"
! Packet ID
! State
! Bound To
!colspan="2"| Field Name
!colspan="2"| Field Type
! Notes
|-
|rowspan="8"| 0x08
|rowspan="8"| Play
|rowspan="8"| Client
|colspan="2"| Mapping size
|colspan="2"| VarInt
| Size of the following array
|-
|rowspan="2"| Advancement mapping
| Key
|rowspan="2"| Array
| Identifier
| minecraft:something-style identifier - What does this identify?
|-
| Value
| Advancement
| See below
|-
|colspan="2"| VarInt
|colspan="2"| List size
| Size of the following array
|-
|colspan="2"| Identifiers
|colspan="2"| Array of Identifier
| Unclear what the point of this is
|-
|colspan="2"| VarInt
|colspan="2"| Progress size
| Size of the following array
|-
|rowspan="2"| Progress mapping
| Key
|rowspan="2"| Array
| Identifier
| minecraft:something-style identifier - What does this identify?
|-
| Value
| Advancement progress
| See below
|}
Advancement structure:
{| class="wikitable"
!colspan="2"| Field Name
!colspan="2"| Field Type
! Notes
|-
|colspan="2"| Flag 1
|colspan="2"| Boolean
| Indicates whether the next field exists
|-
|colspan="2"| Unknown
|colspan="2"| Optional Identifier
|
|-
|colspan="2"| Flag 2
|colspan="2"| Boolean
| Indicates whether the next field exists
|-
|colspan="2"| Unknown
|colspan="2"| Optional advancement display
| See below.
|-
|colspan="2"| Number of criteria
|colspan="2"| VarInt
| Size of the following array
|-
|rowspan="2"| Criteria
| Key
|rowspan="2"| Array
| Identifier
| Not sure what is identified
|-
| Value
| '''Void'''
| There is ''no'' content written here.  Perhaps this will be expanded in the future?
|-
|colspan="2"| Array length
|colspan="2"| VarInt
| Number of arrays in the following array
|-
|rowspan="2"| ?
| Array length 2
|rowspan="2"| Array
| VarInt
| Number of elements in the following array
|-
| ?
| Array of String
|
|}
Advancement display:
{| class="wikitable"
! Field Name
! Field Type
! Notes
|-
| Title
| Chat
|
|-
| Unknown
| VarInt
| May be displayed item ID.  When 0, indicates <code>null</code>
|-
| Frame type
| VarInt enum
| 0 = TASK, 1 = CHALLENGE
|-
| Flag
| Boolean
| Indicates whether the next field exists
|-
| Identifier
| Optional Identifier
| Background texture?
|-
| Unknown
| VarInt
| X coord?
|-
| Unknown
| <span style="color: red;">INVALID</span> (VarInt when writing, Int when reading)
| Y coord?
|}
Advancement progress:
{| class="wikitable"
!colspan="2"| Field Name
!colspan="2"| Field Type
! Notes
|-
|colspan="2"| Size
|colspan="2"| VarInt
| Size of the following array
|-
|rowspan="2"| Criteria
| Criterion identifier
|rowspan="2"| Array
| Identifier
| Probably the same as delared earlier
|-
| Criterion progress
| Criterion progress
|
|}
Criterion progress:
{| class="wikitable"
! Field Name
! Field Type
! Notes
|-
| Achieved
| Boolean
| If true, next field is present
|-
| Date of acheiving
| Optional Long
| As returned by [https://docs.oracle.com/javase/6/docs/api/java/util/Date.html#getTime() <code>Date.getTime</code>]
|}
==== Unlock Recipe ====
{| class="wikitable"
! Packet ID
! State
! Bound To
!colspan="2"| Field Name
!colspan="2"| Field Type
! Notes
|-
|rowspan="5"| 0x31
|rowspan="5"| Play
|rowspan="5"| Client
|-
|colspan="2"| Array size
|colspan="2"| VarInt
| Number of elements in the following array
|-
|rowspan="3"| Recipes
| Identifier
|rowspan="3"| Array
| Identifier
|
|-
| ?
| Boolean
|
|-
| ?
| Boolean
|
|}
=== Serverbound ===
==== Unknown ====
{| class="wikitable"
! Packet ID
! State
! Bound To
!colspan="2"| Field Name
!colspan="2"| Field Type
! Notes
|-
|rowspan="8"| 0x01
|rowspan="8"| Play
|rowspan="8"| Server
|colspan="2"| ?
|colspan="2"| Byte
|
|-
|colspan="2"| ?
|colspan="2"| Short
|
|-
|colspan="2"| ?
|colspan="2"| Boolean
|
|-
|colspan="2"| Array size
|colspan="2"| Byte
| Number of elements in the following array
|-
|rowspan="4"| ?
| Partial identifier
|rowspan="4"| Array
| String (64)
| The portion of an identifier after "minecraft:", or <code>empty</code> if not present
|-
| ?
| Short
|
|-
| ?
| Byte
|
|-
| ?
| Byte
|
|}
==== Recipe displayed ====
{| class="wikitable"
! Packet ID
! State
! Bound To
! Field Name
! Field Type
! Notes
|-
|rowspan="4"| 0x17
|rowspan="4"| Play
|rowspan="4"| Server
| Identifier
| Identifier
|
|-
| Param
| Int
|
|}


== Handshaking ==
== Handshaking ==

Revision as of 15:51, 31 March 2017

This page documents the changes from the last stable Minecraft release (currently 1.11.2, protocol 316) to the current pre-release (currently 17w13b, protocol 319). Note that this page contains bleeding-edge information that may not be completely or correctly documented.

One who wishes to commandeer the merging of this into Protocol when an update is made must be sure to respect any changes that may have occurred to the respective packets there.

Contents

Data types

No changes so far.

Packets

ID Packet name Documentation
Handshaking serverbound
0x00 Handshake added Current }} removed unchanged | (unchanged) | Pre }} }}
Play clientbound
0x08 Advancements added Current }} removed unchanged | (unchanged) | Pre }} }}
0x08}}{{#if:0x09|{{#if:0x08| }}0x09}} Block Break Animation added Current }} removed unchanged | (unchanged) | Pre }} }}
0x09}}{{#if:0x0A|{{#if:0x09| }}0x0A}} Update Block Entity added Current }} removed unchanged | (unchanged) | Pre }} }}
0x0A}}{{#if:0x0B|{{#if:0x0A| }}0x0B}} Block Action added Current }} removed unchanged | (unchanged) | Pre }} }}
0x0B}}{{#if:0x0C|{{#if:0x0B| }}0x0C}} Block Change added Current }} removed unchanged | (unchanged) | Pre }} }}
0x0C}}{{#if:0x0D|{{#if:0x0C| }}0x0D}} Boss Bar added Current }} removed unchanged | (unchanged) | Pre }} }}
0x0D}}{{#if:0x0E|{{#if:0x0D| }}0x0E}} Server Difficulty added Current }} removed unchanged | (unchanged) | Pre }} }}
0x0E}}{{#if:0x0F|{{#if:0x0E| }}0x0F}} Tab-Complete (clientbound) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x0F}}{{#if:0x10|{{#if:0x0F| }}0x10}} Chat Message (clientbound) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x10}}{{#if:0x11|{{#if:0x10| }}0x11}} Multi Block Change added Current }} removed unchanged | (unchanged) | Pre }} }}
0x11}}{{#if:0x12|{{#if:0x11| }}0x12}} Confirm Transation (clientbound) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x12}}{{#if:0x13|{{#if:0x12| }}0x13}} Close Window (clientbound) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x13}}{{#if:0x14|{{#if:0x13| }}0x14}} Open Window added Current }} removed unchanged | (unchanged) | Pre }} }}
0x14}}{{#if:0x15|{{#if:0x14| }}0x15}} Window Items added Current }} removed unchanged | (unchanged) | Pre }} }}
0x15}}{{#if:0x16|{{#if:0x15| }}0x16}} Window Property added Current }} removed unchanged | (unchanged) | Pre }} }}
0x16}}{{#if:0x17|{{#if:0x16| }}0x17}} Set Slot added Current }} removed unchanged | (unchanged) | Pre }} }}
0x17}}{{#if:0x18|{{#if:0x17| }}0x18}} Set Cooldown added Current }} removed unchanged | (unchanged) | Pre }} }}
0x18}}{{#if:0x19|{{#if:0x18| }}0x19}} Plugin Message (clientbound) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x19}}{{#if:0x1A|{{#if:0x19| }}0x1A}} Named Sound Effect added Current }} removed unchanged | (unchanged) | Pre }} }}
0x1A}}{{#if:0x1B|{{#if:0x1A| }}0x1B}} Disconnect (play) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x1B}}{{#if:0x1C|{{#if:0x1B| }}0x1C}} Entity Status added Current }} removed unchanged | (unchanged) | Pre }} }}
0x1C}}{{#if:0x1D|{{#if:0x1C| }}0x1D}} Explosion added Current }} removed unchanged | (unchanged) | Pre }} }}
0x1D}}{{#if:0x1E|{{#if:0x1D| }}0x1E}} Unload Chunk added Current }} removed unchanged | (unchanged) | Pre }} }}
0x1E}}{{#if:0x1F|{{#if:0x1E| }}0x1F}} Change Game State added Current }} removed unchanged | (unchanged) | Pre }} }}
0x1F}}{{#if:0x20|{{#if:0x1F| }}0x20}} Keep Alive (clientbound) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x20}}{{#if:0x21|{{#if:0x20| }}0x21}} Chunk Data added Current }} removed unchanged | (unchanged) | Pre }} }}
0x21}}{{#if:0x22|{{#if:0x21| }}0x22}} Effect added Current }} removed unchanged | (unchanged) | Pre }} }}
0x22}}{{#if:0x23|{{#if:0x22| }}0x23}} Particle added Current }} removed unchanged | (unchanged) | Pre }} }}
0x23}}{{#if:0x24|{{#if:0x23| }}0x24}} Join Game added Current }} removed unchanged | (unchanged) | Pre }} }}
0x24}}{{#if:0x25|{{#if:0x24| }}0x25}} Particle added Current }} removed unchanged | (unchanged) | Pre }} }}
0x25}}{{#if:0x26|{{#if:0x25| }}0x26}} Entity Relative Move added Current }} removed unchanged | (unchanged) | Pre }} }}
0x26}}{{#if:0x27|{{#if:0x26| }}0x27}} Entity Look And Relative Move added Current }} removed unchanged | (unchanged) | Pre }} }}
0x27}}{{#if:0x28|{{#if:0x27| }}0x28}} Entity Look added Current }} removed unchanged | (unchanged) | Pre }} }}
0x28}}{{#if:0x29|{{#if:0x28| }}0x29}} Entity added Current }} removed unchanged | (unchanged) | Pre }} }}
0x29}}{{#if:0x2A|{{#if:0x29| }}0x2A}} Vehicle Move (clientbound) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x2A}}{{#if:0x2B|{{#if:0x2A| }}0x2B}} Open Sign Editor added Current }} removed unchanged | (unchanged) | Pre }} }}
0x2B}}{{#if:0x2C|{{#if:0x2B| }}0x2C}} Player Abilities (clientbound) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x2C}}{{#if:0x2D|{{#if:0x2C| }}0x2D}} Combat Event added Current }} removed unchanged | (unchanged) | Pre }} }}
0x2D}}{{#if:0x2E|{{#if:0x2D| }}0x2E}} Player List Item added Current }} removed unchanged | (unchanged) | Pre }} }}
0x2E}}{{#if:0x2F|{{#if:0x2E| }}0x2F}} Player Position And Look (clientbound) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x2F}}{{#if:0x30|{{#if:0x2F| }}0x30}} Use Bed added Current }} removed unchanged | (unchanged) | Pre }} }}
0x31 Unlock Recipe added Current }} removed unchanged | (unchanged) | Pre }} }}
0x30}}{{#if:0x32|{{#if:0x30| }}0x32}} Destroy Entities added Current }} removed unchanged | (unchanged) | Pre }} }}
0x31}}{{#if:0x33|{{#if:0x31| }}0x33}} Remove Entity Effect added Current }} removed unchanged | (unchanged) | Pre }} }}
0x32}}{{#if:0x34|{{#if:0x32| }}0x34}} Resource Pack Send added Current }} removed unchanged | (unchanged) | Pre }} }}
0x33}}{{#if:0x35|{{#if:0x33| }}0x35}} Respawn added Current }} removed unchanged | (unchanged) | Pre }} }}
0x34}}{{#if:0x36|{{#if:0x34| }}0x36}} Entity Head Look added Current }} removed unchanged | (unchanged) | Pre }} }}
0x35}}{{#if:0x37|{{#if:0x35| }}0x37}} World Border added Current }} removed unchanged | (unchanged) | Pre }} }}
0x36}}{{#if:0x38|{{#if:0x36| }}0x38}} Camera added Current }} removed unchanged | (unchanged) | Pre }} }}
0x37}}{{#if:0x39|{{#if:0x37| }}0x39}} Held Item Change (clientbound) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x38}}{{#if:0x3A|{{#if:0x38| }}0x3A}} Display Scoreboard added Current }} removed unchanged | (unchanged) | Pre }} }}
0x39}}{{#if:0x3B|{{#if:0x39| }}0x3B}} Entity Metadata added Current }} removed unchanged | (unchanged) | Pre }} }}
0x3A}}{{#if:0x3C|{{#if:0x3A| }}0x3C}} Attach Entity added Current }} removed unchanged | (unchanged) | Pre }} }}
0x3B}}{{#if:0x3D|{{#if:0x3B| }}0x3D}} Entity Velocity added Current }} removed unchanged | (unchanged) | Pre }} }}
0x3C}}{{#if:0x3E|{{#if:0x3C| }}0x3E}} Entity Equipment added Current }} removed unchanged | (unchanged) | Pre }} }}
0x3D}}{{#if:0x3F|{{#if:0x3D| }}0x3F}} Set Experience added Current }} removed unchanged | (unchanged) | Pre }} }}
0x3E}}{{#if:0x40|{{#if:0x3E| }}0x40}} Update Health added Current }} removed unchanged | (unchanged) | Pre }} }}
0x3F}}{{#if:0x41|{{#if:0x3F| }}0x41}} Scoreboard Objective added Current }} removed unchanged | (unchanged) | Pre }} }}
0x40}}{{#if:0x42|{{#if:0x40| }}0x42}} Set Passengers added Current }} removed unchanged | (unchanged) | Pre }} }}
0x41}}{{#if:0x43|{{#if:0x41| }}0x43}} Teams added Current }} removed unchanged | (unchanged) | Pre }} }}
0x42}}{{#if:0x44|{{#if:0x42| }}0x44}} Update Score added Current }} removed unchanged | (unchanged) | Pre }} }}
0x43}}{{#if:0x45|{{#if:0x43| }}0x45}} Spawn Position added Current }} removed unchanged | (unchanged) | Pre }} }}
0x44}}{{#if:0x46|{{#if:0x44| }}0x46}} Time Update added Current }} removed unchanged | (unchanged) | Pre }} }}
0x45}}{{#if:0x47|{{#if:0x45| }}0x47}} Title added Current }} removed unchanged | (unchanged) | Pre }} }}
0x46}}{{#if:0x48|{{#if:0x46| }}0x48}} Sound Effect added Current }} removed unchanged | (unchanged) | Pre }} }}
0x47}}{{#if:0x49|{{#if:0x47| }}0x49}} Player List Header And Footer added Current }} removed unchanged | (unchanged) | Pre }} }}
0x48}}{{#if:0x4A|{{#if:0x48| }}0x4A}} Collect Item added Current }} removed unchanged | (unchanged) | Pre }} }}
0x49}}{{#if:0x4B|{{#if:0x49| }}0x4B}} Entity Teleport added Current }} removed unchanged | (unchanged) | Pre }} }}
0x4A}}{{#if:0x4C|{{#if:0x4A| }}0x4C}} Entity Properties added Current }} removed unchanged | (unchanged) | Pre }} }}
0x4B}}{{#if:0x4D|{{#if:0x4B| }}0x4D}} Entity Effect added Current }} removed unchanged | (unchanged) | Pre }} }}
Play serverbound
0x01 Unknown added Current }} removed unchanged | (unchanged) | Pre }} }}
0x01}}{{#if:0x02|{{#if:0x01| }}0x02}} Tab-Complete (serverbound) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x02}}{{#if:0x03|{{#if:0x02| }}0x03}} Chat Message (serverbound) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x03}}{{#if:0x04|{{#if:0x03| }}0x04}} Client Status added Current }} removed unchanged | (unchanged) | Pre }} }}
0x04}}{{#if:0x05|{{#if:0x04| }}0x05}} Client Settings added Current }} removed unchanged | (unchanged) | Pre }} }}
0x05}}{{#if:0x06|{{#if:0x05| }}0x06}} Confirm Transaction (serverbound) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x06}}{{#if:0x07|{{#if:0x06| }}0x07}} Enchant Item added Current }} removed unchanged | (unchanged) | Pre }} }}
0x07}}{{#if:0x08|{{#if:0x07| }}0x08}} Click Window added Current }} removed unchanged | (unchanged) | Pre }} }}
0x08}}{{#if:0x09|{{#if:0x08| }}0x09}} Close Window (serverbound) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x09}}{{#if:0x0A|{{#if:0x09| }}0x0A}} Plugin Message (serverbound) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x0A}}{{#if:0x0B|{{#if:0x0A| }}0x0B}} Use Entity added Current }} removed unchanged | (unchanged) | Pre }} }}
0x0B}}{{#if:0x0C|{{#if:0x0B| }}0x0C}} Keep Alive (serverbound) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x0C}}{{#if:0x0D|{{#if:0x0C| }}0x0D}} Player Position added Current }} removed unchanged | (unchanged) | Pre }} }}
0x0D}}{{#if:0x0E|{{#if:0x0D| }}0x0E}} Player Position And Look (serverbound) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x0E}}{{#if:0x0F|{{#if:0x0E| }}0x0F}} Player Look added Current }} removed unchanged | (unchanged) | Pre }} }}
0x0F}}{{#if:0x10|{{#if:0x0F| }}0x10}} Player added Current }} removed unchanged | (unchanged) | Pre }} }}
0x10}}{{#if:0x11|{{#if:0x10| }}0x11}} Vehicle Move (serverbound) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x11}}{{#if:0x12|{{#if:0x11| }}0x12}} Steer Boat added Current }} removed unchanged | (unchanged) | Pre }} }}
0x12}}{{#if:0x13|{{#if:0x12| }}0x13}} Player Abilities (serverbound) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x13}}{{#if:0x14|{{#if:0x13| }}0x14}} Player Digging added Current }} removed unchanged | (unchanged) | Pre }} }}
0x14}}{{#if:0x15|{{#if:0x14| }}0x15}} Entity Action added Current }} removed unchanged | (unchanged) | Pre }} }}
0x15}}{{#if:0x16|{{#if:0x15| }}0x16}} Steer Vehicle added Current }} removed unchanged | (unchanged) | Pre }} }}
0x17 Recipe Displayed added Current }} removed unchanged | (unchanged) | Pre }} }}
0x16}}{{#if:0x18|{{#if:0x16| }}0x18}} Resource Pack Status added Current }} removed unchanged | (unchanged) | Pre }} }}
0x17}}{{#if:0x19|{{#if:0x17| }}0x19}} Held Item Change (serverbound) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x18}}{{#if:0x1A|{{#if:0x18| }}0x1A}} Creative Inventory Action added Current }} removed unchanged | (unchanged) | Pre }} }}
0x19}}{{#if:0x1B|{{#if:0x19| }}0x1B}} Update Sign added Current }} removed unchanged | (unchanged) | Pre }} }}
0x1A}}{{#if:0x1C|{{#if:0x1A| }}0x1C}} Animation (serverbound) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x1B}}{{#if:0x1D|{{#if:0x1B| }}0x1D}} Spectate added Current }} removed unchanged | (unchanged) | Pre }} }}
0x1C}}{{#if:0x1E|{{#if:0x1C| }}0x1E}} Player Block Placement added Current }} removed unchanged | (unchanged) | Pre }} }}
0x1D}}{{#if:0x1F|{{#if:0x1D| }}0x1F}} Use Item added Current }} removed unchanged | (unchanged) | Pre }} }}

New/modified data types

Entity Metadata

Note that entity metadata is a totally distinct concept from block metadata. It is not required to send all metadata fields, or even any metadata fields, so long as the terminating entry is correctly sent.

Entity Metadata is an array of entries, each of which looks like the following:

Name Type Meaning
Index Unsigned Byte Unique index key determining the meaning of the following value, see the table below. If this is 0xff then the it is the end of the Entity Metadata array and no more is read.
Type Optional Byte Enum Only if Index is not 0xff; the type of the index, see the table below
Value Optional value of Type Only if Index is not 0xff: the value of the metadata field
Value of Type field Type of Value field Notes
0 Byte
1 VarInt
2 Float
3 String
4 Chat
5 Slot
6 Boolean
7 Rotation 3 floats: rotation on x, rotation on y, rotation on z
8 Position
9 OptPosition (Boolean + Optional Position) Position is present if the Boolean is set to true
10 Direction (VarInt) (Down = 0, Up = 1, North = 2, South = 3, West = 4, East = 5)
11 OptUUID (Boolean + Optional UUID) UUID is present if the Boolean is set to true
12 OptBlockID (VarInt) 0 for absent otherwise, id << 4 | data
13 NBT Tag

Entity classes also recursively inherit fields from classes they extend.

Parrot

Extends TameableAnimal.

Index Type Meaning Default
15 VarInt Variant (0: red/blue, 1: blue, 2: green, 3: yellow/blue) 0

Player

Extends Living.

Index Type Meaning Default
11 Float Additional Hearts 0.0
12 VarInt Score 0
13 Byte The Displayed Skin Parts bit mask that is sent in Client Settings 0
Bit mask Meaning
0x01 Cape enabled
0x02 Jacket enabled
0x04 Left sleeve enabled
0x08 Right sleeve enabled
0x10 Left pants leg enabled
0x20 Right pants leg enabled
0x40 Hat enabled
0x80 Unused
14 Byte Main hand (0 : Left, 1 : Right) 1
15 NBT Tag Left shoulder entity data
16 NBT Tag Right shoulder entity data

Block Actions

No changes so far.

Plugin Channels

No changes so far.

Play

Clientbound

Advancements

Packet ID State Bound To Field Name Field Type Notes
0x08 Play Client Mapping size VarInt Size of the following array
Advancement mapping Key Array Identifier minecraft:something-style identifier - What does this identify?
Value Advancement See below
VarInt List size Size of the following array
Identifiers Array of Identifier Unclear what the point of this is
VarInt Progress size Size of the following array
Progress mapping Key Array Identifier minecraft:something-style identifier - What does this identify?
Value Advancement progress See below

Advancement structure:

Field Name Field Type Notes
Flag 1 Boolean Indicates whether the next field exists
Unknown Optional Identifier
Flag 2 Boolean Indicates whether the next field exists
Unknown Optional advancement display See below.
Number of criteria VarInt Size of the following array
Criteria Key Array Identifier Not sure what is identified
Value Void There is no content written here. Perhaps this will be expanded in the future?
Array length VarInt Number of arrays in the following array
? Array length 2 Array VarInt Number of elements in the following array
? Array of String

Advancement display:

Field Name Field Type Notes
Title Chat
Unknown VarInt May be displayed item ID. When 0, indicates null
Frame type VarInt enum 0 = TASK, 1 = CHALLENGE
Flag Boolean Indicates whether the next field exists
Identifier Optional Identifier Background texture?
Unknown VarInt X coord?
Unknown INVALID (VarInt when writing, Int when reading) Y coord?

Advancement progress:

Field Name Field Type Notes
Size VarInt Size of the following array
Criteria Criterion identifier Array Identifier Probably the same as delared earlier
Criterion progress Criterion progress

Criterion progress:

Field Name Field Type Notes
Achieved Boolean If true, next field is present
Date of acheiving Optional Long As returned by Date.getTime

Unlock Recipe

Packet ID State Bound To Field Name Field Type Notes
0x31 Play Client
Array size VarInt Number of elements in the following array
Recipes Identifier Array Identifier
? Boolean
? Boolean

Serverbound

Unknown

Packet ID State Bound To Field Name Field Type Notes
0x01 Play Server ? Byte
? Short
? Boolean
Array size Byte Number of elements in the following array
? Partial identifier Array String (64) The portion of an identifier after "minecraft:", or empty if not present
? Short
? Byte
? Byte

Recipe displayed

Packet ID State Bound To Field Name Field Type Notes
0x17 Play Server Identifier Identifier
Param Int

Handshaking

Clientbound

No changes so far.

Serverbound

No changes so far.

Handshake

This causes the server to switch into the target state.

Packet ID State Bound To Field Name Field Type Notes
0x00 Handshaking Server Protocol Version VarInt See protocol version numbers (currently {{#if:316|316}}{{#if:319|{{#if:316| }}319}})
Server Address String Hostname or IP, e.g. localhost or 127.0.0.1, that was used to connect. The Notchian server does not use this information.
Server Port Unsigned Short Default is 25565. The Notchian server does not use this information.
Next State VarInt Enum 1 for status, 2 for login

Status

Clientbound

No changes so far.

Serverbound

No changes so far.

Login

Clientbound

No changes so far.

Serverbound

No changes so far.