Pre-release protocol: Difference between revisions
Jump to navigation
Jump to search
imported>Barneygale (→Changed packets: 0x33 Map Chunk has changed a whole bunch of Anvil.) |
imported>Barneygale (→Map Chunk (0x33): Was wrong about size_x and size_z. X, Y and Compressed Size are confirmed.) |
||
| Line 252: | Line 252: | ||
| class="col2 centeralign" | int | | class="col2 centeralign" | int | ||
| class="col3 centeralign" | | | class="col3 centeralign" | | ||
| class="col4" | | | class="col4" | Chunk X Coordinate (x16 to get true X) '''Confirmed!''' | ||
|- class="row2" | |- class="row2" | ||
| class="col0 centeralign" | Z | | class="col0 centeralign" | Z | ||
| class="col1 centeralign" | int | | class="col1 centeralign" | int | ||
| class="col2 centeralign" | | | class="col2 centeralign" | | ||
| class="col3" | | | class="col3" | Chunk Z Coordinate (x16 to get true Z) '''Confirmed!''' | ||
|- class="row3" | |- class="row3" | ||
| class="col0 centeralign" | Unknown | | class="col0 centeralign" | Unknown Bool | ||
| class="col1 centeralign" | boolean | | class="col1 centeralign" | boolean | ||
| class="col2 centeralign" | | | class="col2 centeralign" | | ||
| class="col3" | | | class="col3" | Seems to be True when Unknown Short #1 is 2^n - 1 | ||
|- class="row4" | |- class="row4" | ||
| class="col0 centeralign" | | | class="col0 centeralign" | Unknown Short #1 | ||
| class="col1 centeralign" | short | | class="col1 centeralign" | short | ||
| class="col2 centeralign" | | | class="col2 centeralign" | | ||
| class="col3" | | | class="col3" | Possibly the dimensions in all directions. Or Y offset? | ||
|- class="row5" | |- class="row5" | ||
| class="col0 centeralign" | | | class="col0 centeralign" | Unknown Short #2 | ||
| class="col1 centeralign" | short | | class="col1 centeralign" | short | ||
| class="col2 centeralign" | | | class="col2 centeralign" | | ||
| class="col3" | | | class="col3" | I've only seen <code>0</code> | ||
|- class="row6" | |- class="row6" | ||
| class="col0 centeralign" | Compressed size | | class="col0 centeralign" | Compressed size | ||
| class="col1 centeralign" | int | | class="col1 centeralign" | int | ||
| class="col2 centeralign" | | | class="col2 centeralign" | | ||
| class="col3" | Size of compressed region data | | class="col3" | Size of compressed region data. '''Confirmed!''' | ||
|- class="row7" | |- class="row7" | ||
| class="col0 centeralign" | Unknown | | class="col0 centeralign" | Unknown Int | ||
| class="col1 centeralign" | int | | class="col1 centeralign" | int | ||
| class="col2 centeralign" | | | class="col2 centeralign" | | ||
| class="col3" | | | class="col3" | Doesn't seem to be used by the client. Always 0. I expect this is Mod API stuff. | ||
|- class="row8" | |- class="row8" | ||
| class="col0 centeralign" | Compressed data | | class="col0 centeralign" | Compressed data | ||
| class="col1 centeralign" | unsigned byte array | | class="col1 centeralign" | unsigned byte array | ||
| class="col2 centeralign" | <code>…</code> | | class="col2 centeralign" | <code>…</code> | ||
| class="col3" | The region data is compressed using ZLib Deflate function. | | class="col3" | The region data is compressed using ZLib Deflate function. '''Confirmed!''' | ||
|- class="row9" | |- class="row9" | ||
! class="col0" | Total Size: | ! class="col0" | Total Size: | ||
Revision as of 13:26, 15 February 2012
This page documents the changes from the last stable Minecraft release (currently 1.1) to the current pre-release
New packets
Entity Head Look (0x23)
Changes the direction an entity's head is facing.
| Packet ID | Field Name | Field Type | Example | Notes |
|---|---|---|---|---|
| 0x23 | Entity ID | int | ||
| Head Yaw | byte | Head yaw in steps of 2π/256 | ||
| Total Size: | 6 bytes | |||
Update Tile Entity (0x84)
Essentially a block update on a tile entity.
| Packet ID | Field Name | Field Type | Example | Notes |
|---|---|---|---|---|
| 0x84 | X | int | ||
| Y | short | |||
| Z | int | |||
| Action | byte | The type of update to perform | ||
| Custom 1 | int | Varies | ||
| Custom 2 | int | Varies | ||
| Custom 3 | int | Varies | ||
| Total Size: | 24 bytes | |||
Actions
- 1: Set mob displayed inside a mob spawner. Custom 1 contains the mob type
Changed packets
Login Request (0x01)
World height was changed to an integer.
| Packet ID | Field Name | Field Type | Example | Notes |
|---|---|---|---|---|
| 0x01 | Entity ID | int | 1298
|
The Players Entity ID |
| Not used | string | (empty string) | Not used | |
| Map Seed | long | 971768181197178410
|
The server's map seed. Must be sent in respawn packets by the client. | |
| Level Type | string | DEFAULT | DEFAULT or SUPERFLAT; level-type in server.properties | |
| Server mode | int | 0
|
0 for survival, 1 for creative | |
| Dimension | byte | 0
|
-1: The Nether, 0: The Overworld, 1: The End
| |
| Difficulty | byte | 1
|
0 thru 3 for Peaceful, Easy, Normal, Hard
| |
| World height | int | 256
|
Defaults to 256
| |
| Max players | unsigned byte | 8
|
Used by the client to draw the player list | |
| Total Size: | 28 bytes + length of strings | |||
TODO: Figure out other packets
Handshake (0x02)
Client to Server
The hostname and port were added to this packet, most likely to allow virtual hosting .(sample implementation)
| Packet ID | Field Name | Field Type | Example | Notes |
|---|---|---|---|---|
| 0x02 | UsernameAndHost | string | TkTech;localhost:25565
|
The username of the player attempting to connect, and the host he is connecting to, seperated by a semicolon. |
| Total Size: | 3 bytes + length of strings | |||
Mob Spawn (0x18)
New byte field: head yaw
This needs confirmation!
| Packet ID | Field Name | Field Type | Example | Notes |
|---|---|---|---|---|
| 0x18 | EID | int | 446
|
Entity ID |
| Type | byte | 91
|
The type of mob. See Entities#Mobs | |
| X | int | 13366
|
The Absolute Integer X Position of the object | |
| Y | int | 2176
|
The Absolute Integer Y Position of the object | |
| Z | int | 1680
|
The Absolute Integer Z Position of the object | |
| Yaw | byte | -27
|
The yaw in steps of 2π/256 | |
| Pitch | byte | 0
|
The pitch in steps of 2π/256 | |
| Head Yaw | byte | Head yaw in steps of 2π/256 | ||
| Metadata | Metadata | 127
|
Varies by mob, see Entities | |
| Total Size: | 21 bytes + Metadata (at least 1) | |||
Map Chunk (0x33)
This is currently a best guess
| Packet ID | Field Name | Field Type | Example | Notes |
|---|---|---|---|---|
| 0x33 | X | int | Chunk X Coordinate (x16 to get true X) Confirmed! | |
| Z | int | Chunk Z Coordinate (x16 to get true Z) Confirmed! | ||
| Unknown Bool | boolean | Seems to be True when Unknown Short #1 is 2^n - 1 | ||
| Unknown Short #1 | short | Possibly the dimensions in all directions. Or Y offset? | ||
| Unknown Short #2 | short | I've only seen 0
| ||
| Compressed size | int | Size of compressed region data. Confirmed! | ||
| Unknown Int | int | Doesn't seem to be used by the client. Always 0. I expect this is Mod API stuff. | ||
| Compressed data | unsigned byte array | …
|
The region data is compressed using ZLib Deflate function. Confirmed! | |
| Total Size: | 22 bytes + Compressed chunk size | |||
Other changes
Protocol version is now 27.
Protocol History
2012-02-15
- 12w07a
- Protocol version is now 27
- Updated packets: 0x01, 0x09, 0x33
2012-02-09
- 12w06a
- Protocol version is now 25
- New packet: 0x84
2012-01-26
- 12w04a
- Protocol version has not been changed
- Handshake Packet by client (0x02) now contains the server host and port
- Window Open Packet (0x64): WindowTitle is now longer than accepted by older clients. Contains a keyword such as "container.furnace"
2012-01-19
- 12w03a
- Protocol version is now 24
- New packet: 0x23
- MobSpawn: new field, 1 byte inserted before metadata.