Difference between revisions of "Pre-release protocol"

From wiki.vg
Jump to navigation Jump to search
(→‎Changed packets: Update progress bar (0x69) gives enchantment table data.)
(Updated to 1.21-pre2)
 
Line 1: Line 1:
This page documents the changes from the [[Protocol|last stable Minecraft release]] (currently 1.8.1) to the current pre-release (currently 1.0RC2)
+
This page documents the changes from the [[Protocol|last stable Minecraft release]] (currently [[Protocol version numbers|1.20.6, protocol 766]]) to the current pre-release (currently [[Protocol version numbers|1.21-pre2, protocol {{Snapshot PVN|1073742024}}]]). Note that this page contains bleeding-edge information that may not be completely or correctly documented.
  
== New packets ==
+
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.
  
=== Enchant Item (0x6C) ===
+
== Contents ==
  
'''Client to Server only'''
+
<div style="float:right;">__TOC__</div>
 +
 
 +
=== Data types ===
 +
 
 +
No changes documented so far.
 +
 
 +
=== Packets ===
  
 
{| class="wikitable"
 
{| class="wikitable"
|- class="row0"
+
! ID
! class="col0" | Packet ID
+
! Packet name
! class="col1" | Field Name
+
!colspan="2"| Documentation
! class="col2" | Field Type
+
|-
! class="col3" | Example
+
!colspan="4"| Configuration clientbound
! class="col4" | Notes
+
{{PacketList|0x0F|Clientbound Report Details (configuration)|rel=added}}
|- class="row1"
+
{{PacketList|0x10|Clientbound Server Links (configuration)|rel=added}}
| class="col0 centeralign" rowspan=2 | 0x6C
+
|-
| class="col1 centeralign" | Window ID
+
!colspan="4"| Play clientbound
| class="col2 centeralign" | byte
+
{{PacketList|0x7A|Clientbound Report Details (play)|rel=added}}
| class="col3 centeralign" | 1
+
{{PacketList|0x7B|Clientbound Server Links (play)|rel=added}}
| class="col4" | The ID sent by [[Protocol#Open_window_.280x64.29|0x64]]
+
|-
|- class="row2"
 
| class="col1 centeralign" | Enchantment
 
| class="col2 centeralign" | byte
 
| class="col3 centeralign" | 0
 
| class="col4" | The position of the enchantment on the enchantment table window, starting with 0 as the topmost one.
 
|- class="row3"
 
! class="col0" | Total Size:
 
| class="col1 rightalign" colspan="4" | 3 bytes
 
 
|}
 
|}
  
== Changed packets ==
+
== Handshake ==
  
=== "Slot" type change ===
+
No changes so far.
  
Four packets changed:
+
== Status ==
  
* [[Protocol#Player_Block_Placement_.280x0F.29|0x0F player block placement]]
+
No changes so far.
* [[Protocol#Window_click_.280x66.29|0x66 window click]]
 
* [[Protocol#Set_slot_.280x67.29|0x67 set slot]]
 
* [[Protocol#Window_items_.280x68.29|0x68 window items]]
 
* 0x6B Create Inventory
 
  
This change affects the "slot" datatype. This type consists of at least a short (item_id). If this id isn't <code>-1</code>, a byte (count) and a short (uses) follow.
+
== Login ==
  
From 1.9pre2 onward, additional data is sent but only for [https://gist.github.com/1268479 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
+
No changes so far.
  
As of 1.9pre3, the format of the NBT is as follows
+
== Configuration ==
  
<code>
+
=== Clientbound ===
  COMPOUND
 
    LIST: 'ench'
 
      SHORT: 'id'
 
      SHORT: 'lvl'
 
    END
 
  END
 
</code>
 
  
=== [[Protocol#Experience_.280x2B.29|Experience (0x2B)]] ===
+
==== Clientbound Report Details (configuration) ====
  
{| class="wikitable"
+
Contains a list of key-value text entries that are included in any crash or disconnection report generated during connection to the server.
|- class="row0"
+
 
! class="col0" | Packet ID
+
{| class="wikitable" {{added}}
! class="col1" | Field Name
+
! Packet ID
! class="col2" | Field Type
+
! State
! class="col3" | Example
+
! Bound To
! class="col4" | Notes
+
! colspan="2"| Field Name
|- class="row1"
+
! colspan="2"| Field Type
| class="col0 centeralign" rowspan="3" | 0x2B
+
! Notes
| class="col1 centeralign" | Experience bar
+
|-
| class="col2 centeralign" | float
+
| rowspan="3"| 0x0F
| class="col3 centeralign" | <code>0.5960060358047485</code>
+
| rowspan="3"| Configuration
| class="col4" | Used for drawing the experience bar - value is between 0 and 1.
+
| rowspan="3"| Client
|- class="row2"
+
| colspan="2"| Details Count
| class="col0 centeralign" | Level
+
| colspan="2"| {{Type|VarInt}} (32)
| class="col1 centeralign" | short
+
| The number of details in the following array.
| class="col2 centeralign" | <code>8</code>
+
|-
| class="col4" |
+
| rowspan="2"| Details
|- class="row3"
+
| Title
| class="col0 centeralign" | Total experience
+
| rowspan="2"| {{Type|Array}}
| class="col1 centeralign" | short
+
| {{Type|String}} (128)
| class="col2 centeralign" | <code>130</code>
+
|
| class="col3" |
+
|-
|- class="row4"
+
| Description
! class="col0" | Total Size:
+
| {{Type|String}} (4096)
| class="col1 rightalign" colspan="4" | 9 bytes
+
|
 +
|}
 +
 
 +
==== Clientbound Server Links (configuration) ====
 +
 
 +
This packet contains a list of links that the Notchian client will display in the menu available from the pause menu. Link labels can be built-in or custom (i.e., any text).
 +
 
 +
{| class="wikitable" {{added}}
 +
! Packet ID
 +
! State
 +
! Bound To
 +
! colspan="2"| Field Name
 +
! colspan="2"| Field Type
 +
! Notes
 +
|-
 +
| rowspan="4"| 0x10
 +
| rowspan="4"| Configuration
 +
| rowspan="4"| Client
 +
| colspan="2"| Links Count
 +
| colspan="2"| {{Type|VarInt}}
 +
| The number of links in the following array.
 +
|-
 +
| rowspan="3"| Links
 +
| Is built-in
 +
| rowspan="3"| {{Type|Array}}
 +
| {{Type|Boolean}}
 +
| Determines if the following label is built-in (from enum) or custom (text component).
 +
|-
 +
| Label
 +
| {{Type|VarInt}} {{Type|Enum}} / {{Type|Text Component}}
 +
| See below.
 +
|-
 +
| URL
 +
| {{Type|String}}
 +
| Valid URL.
 
|}
 
|}
  
=== [[Protocol#Update_progress_bar_.280x69.29|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.
+
{| class="wikitable" {{added}}
 +
! ID
 +
! Name
 +
! Notes
 +
|-
 +
| 0
 +
| Bug Report
 +
| Displayed on connection error screen; included as a comment in the disconnection report.
 +
|-
 +
| 1
 +
| Community Guidelines
 +
|
 +
|-
 +
| 2
 +
| Support
 +
|
 +
|-
 +
| 3
 +
| Status
 +
|
 +
|-
 +
| 4
 +
| Feedback
 +
|
 +
|-
 +
| 5
 +
| Community
 +
|
 +
|-
 +
| 6
 +
| Website
 +
|
 +
|-
 +
| 7
 +
| Forums
 +
|
 +
|-
 +
| 8
 +
| News
 +
|
 +
|-
 +
| 9
 +
| Announcements
 +
|
 +
|-
 +
|}
 +
 
 +
=== Serverbound ===
 +
 
 +
No changes so far.
  
This field should probably be renamed to "Window property change" or something.
+
== Play ==
  
== Other changes ==
+
=== Clientbound ===
  
Protocol version is 20, as of 1.9pre4
+
==== Clientbound Report Details (play) ====
  
[[Protocol#Mob_Types|New mobs]]: Blaze, Magma Cube, Ender Dragon, Snowman, Villager
+
Contains a list of key-value text entries that are included in any crash or disconnection report generated during connection to the server.
  
Notchian server features two new protocols: [[Rcon|RCON]] (server class: o.java) and [[Query|Query]] (server class: su.java)
+
{| class="wikitable" {{added}}
 +
! Packet ID
 +
! State
 +
! Bound To
 +
! colspan="2"| Field Name
 +
! colspan="2"| Field Type
 +
! Notes
 +
|-
 +
| rowspan="3"| 0x7A
 +
| rowspan="3"| Configuration
 +
| rowspan="3"| Client
 +
| colspan="2"| Details Count
 +
| colspan="2"| {{Type|VarInt}} (32)
 +
| The number of details in the following array.
 +
|-
 +
| rowspan="2"| Details
 +
| Title
 +
| rowspan="2"| {{Type|Array}}
 +
| {{Type|String}} (128)
 +
|
 +
|-
 +
| Description
 +
| {{Type|String}} (4096)
 +
|
 +
|}
  
== Protocol History ==
+
==== Clientbound Server Links (play) ====
  
=== 2011-11-13 ===
+
This packet contains a list of links that the Notchian client will display in the menu available from the pause menu. Link labels can be built-in or custom (i.e., any text).
* 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 ===
+
{| class="wikitable" {{added}}
* Beta 1.9 pre6.
+
! Packet ID
* Protocol version is now 22
+
! State
* NewState: Reason 4 = Enter scrolling text mode after slaying the dragon.
+
! Bound To
* New entity: EnderCrystal (Spawned using the [[Protocol#Add_Object.2FVehicle_.280x17.29|Add Object/Vehicle (0x17)]] packet with type 51)
+
! colspan="2"| Field Name
 +
! colspan="2"| Field Type
 +
! Notes
 +
|-
 +
| rowspan="4"| 0x7B
 +
| rowspan="4"| Configuration
 +
| rowspan="4"| Client
 +
| colspan="2"| Links Count
 +
| colspan="2"| {{Type|VarInt}}
 +
| The number of links in the following array.
 +
|-
 +
| rowspan="3"| Links
 +
| Is built-in
 +
| rowspan="3"| {{Type|Array}}
 +
| {{Type|Boolean}}
 +
| Determines if the following label is built-in (from enum) or custom (text component).
 +
|-
 +
| Label
 +
| {{Type|VarInt}} {{Type|Enum}} / {{Type|Text Component}}
 +
| See below.
 +
|-
 +
| URL
 +
| {{Type|String}}
 +
| Valid URL.
 +
|}
  
=== 2011-10-27 ===
+
{| class="wikitable" {{added}}
* Beta 1.9 pre5.
+
! ID
* Protocol version is now 21
+
! Name
* Packet 0x6B (Create Inventory) changed: uses Slot datatype.
+
! Notes
 +
|-
 +
| 0
 +
| Bug Report
 +
| Displayed on connection error screen; included as a comment in the disconnection report.
 +
|-
 +
| 1
 +
| Community Guidelines
 +
|
 +
|-
 +
| 2
 +
| Support
 +
|
 +
|-
 +
| 3
 +
| Status
 +
|
 +
|-
 +
| 4
 +
| Feedback
 +
|
 +
|-
 +
| 5
 +
| Community
 +
|
 +
|-
 +
| 6
 +
| Website
 +
|
 +
|-
 +
| 7
 +
| Forums
 +
|
 +
|-
 +
| 8
 +
| News
 +
|
 +
|-
 +
| 9
 +
| Announcements
 +
|
 +
|-
 +
|}
  
=== 2011-10-13 ===
+
=== Serverbound ===
* <div class="li">Beta 1.9 pre4.</div>
 
* Protocol version is now 20
 
* Packet 0x2B ([[#Experience_.280x2B.29|Experience]]) changed: now (float, short, short)
 
* New packet 0x6C ([[#Enchant_Item_.280x6C.29|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|RCON]] server (server class: o.java)
 
* Notchian server now features "G4S" server [http://pear.php.net/package/Net_GameServerQuery]
 
  
=== 2011-9-29 ===
+
No changes so far.
* <div class="li">Beta 1.9 pre2.</div>
 
* Protocol version is now 19
 
* Four packets changed:
 
** [[Protocol#Player_Block_Placement_.280x0F.29|0x0F player block placement]]
 
** [[Protocol#Window_click_.280x66.29|0x66 window click]]
 
** [[Protocol#Set_slot_.280x67.29|0x67 set slot]]
 
** [[Protocol#Window_items_.280x68.29|0x68 window items]]
 
* The change affects the "slot" datatype. This type consists of at least a short (item_id). If this id isn't <code>-1</code>, a byte (count) and a short (uses) follow.
 
* From 1.9pre2 onward, additional data is sent but only for [https://gist.github.com/1268479 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
 
<code>
 
  COMPOUND
 
    LIST: 'ench'
 
      SHORT: 'id'
 
      SHORT: 'lvl'
 
    END
 
  END
 
</code>
 
* So far only this format, with 'id' and 'lvl' set to <code>2</code> and <code>1</code> respectively, has been seen.
 
  
=== 2011-9-22 ===
+
[[Category:Minecraft Modern]]
* <div class="li">Beta 1.9 pre1.</div>
 
* Protocol version is now 18
 

Latest revision as of 10:40, 8 June 2024

This page documents the changes from the last stable Minecraft release (currently 1.20.6, protocol 766) to the current pre-release (currently 1.21-pre2, protocol Snapshot 200). 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 documented so far.

Packets

ID Packet name Documentation
Configuration clientbound
0x0F Clientbound Report Details (configuration) Pre
0x10 Clientbound Server Links (configuration) Pre
Play clientbound
0x7A Clientbound Report Details (play) Pre
0x7B Clientbound Server Links (play) Pre

Handshake

No changes so far.

Status

No changes so far.

Login

No changes so far.

Configuration

Clientbound

Clientbound Report Details (configuration)

Contains a list of key-value text entries that are included in any crash or disconnection report generated during connection to the server.

Packet ID State Bound To Field Name Field Type Notes
0x0F Configuration Client Details Count VarInt (32) The number of details in the following array.
Details Title Array String (128)
Description String (4096)

Clientbound Server Links (configuration)

This packet contains a list of links that the Notchian client will display in the menu available from the pause menu. Link labels can be built-in or custom (i.e., any text).

Packet ID State Bound To Field Name Field Type Notes
0x10 Configuration Client Links Count VarInt The number of links in the following array.
Links Is built-in Array Boolean Determines if the following label is built-in (from enum) or custom (text component).
Label VarInt Enum / Text Component See below.
URL String Valid URL.


ID Name Notes
0 Bug Report Displayed on connection error screen; included as a comment in the disconnection report.
1 Community Guidelines
2 Support
3 Status
4 Feedback
5 Community
6 Website
7 Forums
8 News
9 Announcements

Serverbound

No changes so far.

Play

Clientbound

Clientbound Report Details (play)

Contains a list of key-value text entries that are included in any crash or disconnection report generated during connection to the server.

Packet ID State Bound To Field Name Field Type Notes
0x7A Configuration Client Details Count VarInt (32) The number of details in the following array.
Details Title Array String (128)
Description String (4096)

Clientbound Server Links (play)

This packet contains a list of links that the Notchian client will display in the menu available from the pause menu. Link labels can be built-in or custom (i.e., any text).

Packet ID State Bound To Field Name Field Type Notes
0x7B Configuration Client Links Count VarInt The number of links in the following array.
Links Is built-in Array Boolean Determines if the following label is built-in (from enum) or custom (text component).
Label VarInt Enum / Text Component See below.
URL String Valid URL.
ID Name Notes
0 Bug Report Displayed on connection error screen; included as a comment in the disconnection report.
1 Community Guidelines
2 Support
3 Status
4 Feedback
5 Community
6 Website
7 Forums
8 News
9 Announcements

Serverbound

No changes so far.