|
|
Line 1: |
Line 1: |
− | This page documents the changes from the [[Protocol|last stable Minecraft release]] (currently 1.6.2, protocol 74) to the current pre-release. Note that this page contains bleeding-edge information that may not be completely or correctly documented. | + | 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. |
− | He 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 occured to the respective packets there.
| |
| | | |
− | == Protocol History ==
| + | 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. |
− | 13w36a - Added sound category byte to 0x3E
| |
− | - Changed 0xC8 to a string:int map
| |
| | | |
− | 13w37b -
| + | == Contents == |
| | | |
− | 1.6.3 - Terrain fixes to help moving to 1.7, no packet changes from 1.6.2
| + | <div style="float:right;">__TOC__</div> |
| | | |
− | 1.6.4 -
| + | === Data types === |
| | | |
− | 13w38a/b/c -
| + | No changes documented so far. |
| | | |
− | 13w39a/b - UUIDs added to spawn named entity, game state 'gamemode' byte -> float
| + | === Packets === |
− | | |
− | 13w41a - Large protocol work
| |
− | | |
− | == Protocol Version == | |
− | 13w41a -
| |
− | | |
− | 13w39a/b - 80
| |
− | | |
− | 13w38a/b/c - 79
| |
− | | |
− | 1.6.4 - 78
| |
− | | |
− | 1.6.3 - 77
| |
− | | |
− | 13w37b - 76
| |
− | | |
− | 13w36a - 75
| |
− | | |
− | == Packet format ==
| |
| | | |
| {| class="wikitable" | | {| class="wikitable" |
− | ! Field Name !! Field Type !! Notes | + | ! ID |
− | |- | + | ! Packet name |
− | | Length || VarInt || | + | !colspan="2"| Documentation |
− | |- | + | |- |
− | | Type || VarInt || | + | !colspan="4"| Configuration clientbound |
− | |- | + | {{PacketList|0x0F|Clientbound Report Details (configuration)|rel=added}} |
− | | Data || ||
| + | {{PacketList|0x10|Clientbound Server Links (configuration)|rel=added}} |
| + | |- |
| + | !colspan="4"| Play clientbound |
| + | {{PacketList|0x7A|Clientbound Report Details (play)|rel=added}} |
| + | {{PacketList|0x7B|Clientbound Server Links (play)|rel=added}} |
| + | |- |
| |} | | |} |
| | | |
− | == Data Types == | + | == Handshake == |
| | | |
− | VarInt - [http://developers.google.com/protocol-buffers/docs/encoding#varints Protocol Buffer 32-bit Varint]
| + | No changes so far. |
| | | |
− | String - UTF-8 String
| + | == Status == |
| | | |
− | == Handshaking ==
| + | No changes so far. |
| | | |
− | === Serverbound === | + | == Login == |
| | | |
− | ==== ? ====
| + | No changes so far. |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=4 | 0x00
| |
− | | || VarInt ||
| |
− | |-
| |
− | | || String ||
| |
− | |-
| |
− | | || VarInt ||
| |
− | |-
| |
− | | || VarInt ||
| |
− | |}
| |
| | | |
− | == Play == | + | == Configuration == |
| | | |
| === Clientbound === | | === Clientbound === |
| | | |
− | ==== Keep Alive ==== | + | ==== Clientbound Report Details (configuration) ==== |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=1 | 0x00
| |
− | | Keep Alive ID || Int ||
| |
− | |}
| |
| | | |
| + | Contains a list of key-value text entries that are included in any crash or disconnection report generated during connection to the server. |
| | | |
− | ==== Join Game ====
| + | {| class="wikitable" {{added}} |
− | {| class="wikitable" | + | ! Packet ID |
− | ! Packet ID !! Field Name !! Field Type !! Notes | + | ! State |
− | |- | + | ! Bound To |
− | | rowspan=7 | 0x01 | + | ! colspan="2"| Field Name |
− | | Entity ID || Int || The player's Entity ID | + | ! colspan="2"| Field Type |
− | |- | + | ! Notes |
− | | Level type || String || level-type in server.properties | + | |- |
− | |- | + | | rowspan="3"| 0x0F |
− | | Gamemode || Byte || 0: survival, 1: creative, 2: adventure. Bit 3 (0x8) is the hardcore flag | + | | rowspan="3"| Configuration |
− | |- | + | | rowspan="3"| Client |
− | | Dimension || Byte || -1: nether, 0: overworld, 1: end | + | | colspan="2"| Details Count |
− | |- | + | | colspan="2"| {{Type|VarInt}} (32) |
− | | Difficulty || Unsigned Byte || 0 thru 3 for Peaceful, Easy, Normal, Hard | + | | The number of details in the following array. |
− | |- | + | |- |
− | | || Byte || | + | | rowspan="2"| Details |
− | |- | + | | Title |
− | | Max Players || Byte || Used by the client to draw the player list
| + | | rowspan="2"| {{Type|Array}} |
| + | | {{Type|String}} (128) |
| + | | |
| + | |- |
| + | | Description |
| + | | {{Type|String}} (4096) |
| + | | |
| |} | | |} |
| | | |
− | ==== Chat Message ==== | + | ==== Clientbound Server Links (configuration) ==== |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=1 | 0x02
| |
− | | JSON Data || String || https://gist.github.com/thinkofdeath/e882ce057ed83bac0a1c
| |
− | |}
| |
| | | |
− | ==== Time Update ====
| + | 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"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=2 | 0x03
| |
− | | Age of the world || Long || In ticks; not changed by server commands
| |
− | |-
| |
− | | Time of day || Long || The world (or region) time, in ticks. If negative the sun will stop moving at the Math.abs of the time
| |
− | |}
| |
| | | |
− | ==== Entity Equipment ====
| + | {| class="wikitable" {{added}} |
− | {| class="wikitable" | + | ! Packet ID |
− | ! Packet ID !! Field Name !! Field Type !! Notes | + | ! State |
− | |- | + | ! Bound To |
− | | rowspan=3 | 0x04 | + | ! colspan="2"| Field Name |
− | | EntityID || Int || Entity's ID | + | ! colspan="2"| Field Type |
− | |- | + | ! Notes |
− | | Slot || Short || Equipment slot: 0=held, 1-4=armor slot (1 - boots, 2 - leggings, 3 - chestplate, 4 - helmet) | + | |- |
− | |- | + | | rowspan="4"| 0x10 |
− | | Item || [[Slot_Data|Slot]] || Item in slot format | + | | 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. |
| |} | | |} |
| | | |
− | ==== Spawn Position ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=3 | 0x05
| |
− | | X || Int || Spawn X in block coordinates
| |
− | |-
| |
− | | Y || Int || Spawn Y in block coordinates
| |
− | |-
| |
− | | Z || Int || Spawn | in block coordinates
| |
− | |}
| |
| | | |
− | ==== Update Health ====
| + | {| class="wikitable" {{added}} |
− | {| class="wikitable" | + | ! ID |
− | ! Packet ID !! Field Name !! Field Type !! Notes | + | ! Name |
− | |- | + | ! Notes |
− | | rowspan=3 | 0x06 | + | |- |
− | | Health || Float || 0 or less = dead, 20 = full HP | + | | 0 |
− | |- | + | | Bug Report |
− | | Food || Short || 0 - 20 | + | | Displayed on connection error screen; included as a comment in the disconnection report. |
− | |- | + | |- |
− | | Food Saturation || Float || Seems to vary from 0.0 to 5.0 in integer increments | + | | 1 |
− | |} | + | | Community Guidelines |
| + | | |
| + | |- |
| + | | 2 |
| + | | Support |
| + | | |
| + | |- |
| + | | 3 |
| + | | Status |
| + | | |
| + | |- |
| + | | 4 |
| + | | Feedback |
| + | | |
| + | |- |
| + | | 5 |
| + | | Community |
| + | | |
| + | |- |
| + | | 6 |
| + | | Website |
| + | | |
| + | |- |
| + | | 7 |
| + | | Forums |
| + | | |
| + | |- |
| + | | 8 |
| + | | News |
| + | | |
| + | |- |
| + | | 9 |
| + | | Announcements |
| + | | |
| + | |- |
| + | |} |
| | | |
− | ==== Respawn ==== | + | === Serverbound === |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=5 | 0x07
| |
− | | Dimension || Int || -1: The Nether, 0: The Overworld, 1: The End
| |
− | |-
| |
− | | Difficulty || Byte || 0 thru 3 for Peaceful, Easy, Normal, Hard.
| |
− | |-
| |
− | | Gamemode || Byte || 0: survival, 1: creative, 2: adventure. The hardcore flag is not included
| |
− | |-
| |
− | | World Height|| Short || Defaults to 256
| |
− | |-
| |
− | | Level Type || String ||
| |
− | |}
| |
| | | |
− | ==== Player ====
| + | No changes so far. |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=1 | 0x08
| |
− | | On Ground || Bool | True if the client is on the ground, False otherwise
| |
− | |}
| |
| | | |
− | ==== Player Position ==== | + | == Play == |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=5| 0x09
| |
− | | X || Double || Absolute position
| |
− | |-
| |
− | | Y || Double || Absolute position
| |
− | |-
| |
− | | Stance || Double || Used to modify the players bounding box when going up stairs, crouching, etc…
| |
− | |-
| |
− | | Z || Double || Absolute position
| |
− | |-
| |
− | | On Ground || Bool || True if the client is on the ground, False otherwise
| |
− | |}
| |
− | | |
− | ==== Player Look ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=3| 0x0A
| |
− | | Yaw || Float || Absolute rotation on the X Axis, in degrees
| |
− | |-
| |
− | | Pitch || Float || Absolute rotation on the Y Axis, in degrees
| |
− | |-
| |
− | | On Ground || Bool || True if the client is on the ground, False otherwise
| |
− | |}
| |
− | | |
− | ==== Player Position And Look ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=7| 0x0B
| |
− | | X || Double || Absolute position
| |
− | |-
| |
− | | Y || Double || Absolute position
| |
− | |-
| |
− | | Stance || Double || Used to modify the players bounding box when going up stairs, crouching, etc…
| |
− | |-
| |
− | | Z || Double || Absolute position
| |
− | |-
| |
− | | Yaw || Float || Absolute rotation on the X Axis, in degrees
| |
− | |-
| |
− | | Pitch || Float || Absolute rotation on the Y Axis, in degrees
| |
− | |-
| |
− | | On Ground || Bool || True if the client is on the ground, False otherwise
| |
− | |}
| |
− | | |
− | ==== Held Item Change ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=1 | 0x0C
| |
− | | Slot || Short || The slot which the player has selected (0-8)
| |
− | |}
| |
− | | |
− | ==== Use Bed ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=5 | 0x0D
| |
− | | Entity ID || Int || Player ID
| |
− | |-
| |
− | | || Byte ||
| |
− | |-
| |
− | | X || Int || Bed headboard X as block coordinate
| |
− | |-
| |
− | | Y || Unsigned Byte || Bed headboard Y as block coordinate
| |
− | |-
| |
− | | Z || Int || Bed headboard Z as block coordinate
| |
− | |}
| |
− | | |
− | ==== Animation ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=2 | 0x0E
| |
− | | Entity ID || Int || Player ID
| |
− | |-
| |
− | | Animation || Byte || Animation ID
| |
− | |}
| |
− | | |
− | Animation can be one of the following values:
| |
− | | |
− | {| class="wikitable"
| |
− | ! ID !! Animation
| |
− | |-
| |
− | | 0 || No animation
| |
− | |-
| |
− | | 1 || Swing arm
| |
− | |-
| |
− | | 2 || Damage animation
| |
− | |-
| |
− | | 3 || Leave bed
| |
− | |-
| |
− | | 5 || Eat food
| |
− | |-
| |
− | | 6 || Critical effect
| |
− | |-
| |
− | | 7 || Magic critical effect
| |
− | |-
| |
− | | 102 || (unknown)
| |
− | |-
| |
− | | 104 || Crouch
| |
− | |-
| |
− | | 105 || Uncrouch
| |
− | |}
| |
− | | |
− | ==== Spawn Player ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=10 | 0x0F
| |
− | | Entity ID || Int || Player's Entity ID
| |
− | |-
| |
− | | Player UUID || String || Player's UUID
| |
− | |-
| |
− | | Player Name || String || Player's Name
| |
− | |-
| |
− | | X || Int || Player X as a [[Data_Types#Fixed-point_numbers|Fixed-Point number]]
| |
− | |-
| |
− | | Y || Int || Player X as a [[Data_Types#Fixed-point_numbers|Fixed-Point number]]
| |
− | |-
| |
− | | Z || Int || Player X as a [[Data_Types#Fixed-point_numbers|Fixed-Point number]]
| |
− | |-
| |
− | | Yaw || Byte || Player rotation as a packed byte
| |
− | |-
| |
− | | Pitch || Byte || Player rotation as a packet byte
| |
− | |-
| |
− | | Current Item || Short || The item the player is currently holding. Note that this should be 0 for "no item", unlike -1 used in other packets. A negative value crashes clients.
| |
− | |-
| |
− | | Metadata || [[Entities#Entity_Metadata_Format|Metadata]] || The client will crash if no metadata is sent
| |
− | |}
| |
− | | |
− | ==== Collect Item ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=2 | 0x10
| |
− | | Collected Entity ID || Int ||
| |
− | |-
| |
− | | Collector Entity ID || Int ||
| |
− | |}
| |
− | | |
− | ==== Spawn Object ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=8| 0x11
| |
− | | Entity ID || Int || Entity ID of the object
| |
− | |-
| |
− | | Type || Byte || The of object (See [[Entities#Objects|Objects]]
| |
− | |-
| |
− | | X || Int || X position as a [[Data_Types#Fixed-point_numbers|Fixed-Point number]]
| |
− | |-
| |
− | | Y || Int || Y position as a [[Data_Types#Fixed-point_numbers|Fixed-Point number]]
| |
− | |-
| |
− | | Z || Int || Z position as a [[Data_Types#Fixed-point_numbers|Fixed-Point number]]
| |
− | |-
| |
− | | Pitch || Byte || The pitch in steps of 2p/256
| |
− | |-
| |
− | | Yaw || Byte || The yaw in steps of 2p/256
| |
− | |-
| |
− | | Data || [[Object_Data|Object Data]] ||
| |
− | |}
| |
− | | |
− | ==== Spawn Mob ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=12 | 0x12
| |
− | | Entity ID || Int || Entity's ID
| |
− | |-
| |
− | | Type || Unsigned Byte || The type of mob. See [[Entities#Mobs|Mobs]]
| |
− | |-
| |
− | | X || Int || X position as a [[Data_Types#Fixed-point_numbers|Fixed-Point number]]
| |
− | |-
| |
− | | Y || Int || Y position as a [[Data_Types#Fixed-point_numbers|Fixed-Point number]]
| |
− | |-
| |
− | | Z || Int || Z position as a [[Data_Types#Fixed-point_numbers|Fixed-Point number]]
| |
− | |-
| |
− | | Pitch || Byte || The pitch in steps of 2p/256
| |
− | |-
| |
− | | Head Pitch || Byte || The pitch in steps of 2p/256
| |
− | |-
| |
− | | Yaw || Byte || The yaw in steps of 2p/256
| |
− | |-
| |
− | | Velocity X || Short ||
| |
− | |-
| |
− | | Velocity Y || Short ||
| |
− | |-
| |
− | | Velocity Z || Short ||
| |
− | |-
| |
− | | Metadata || [[Entities#Entity_Metadata_Format|Metadata]] ||
| |
− | |}
| |
− | | |
− | ==== Spawn Painting ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=6 | 0x13
| |
− | | Entity ID || Int || Entity's ID
| |
− | |-
| |
− | | Title || String || Name of the painting. Max length 13
| |
− | |-
| |
− | | X || Int || Center X coordinate
| |
− | |-
| |
− | | Y || Int || Center Y coordinate
| |
− | |-
| |
− | | Z || Int || Center Z coordinate
| |
− | |-
| |
− | | Direction || Int || Direction the painting faces (0 -z, 1 -x, 2 +z, 3 +x)
| |
− | |}
| |
− | | |
− | ==== Spawn Experience Orb ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=5 | 0x14
| |
− | | Entity ID || Int || Entity's ID
| |
− | |-
| |
− | | X || Int || X position as a [[Data_Types#Fixed-point_numbers|Fixed-Point number]]
| |
− | |-
| |
− | | Y || Int || Y position as a [[Data_Types#Fixed-point_numbers|Fixed-Point number]]
| |
− | |-
| |
− | | Z || Int || Z position as a [[Data_Types#Fixed-point_numbers|Fixed-Point number]]
| |
− | |-
| |
− | | Count || Short || The amount of experience this orb will reward once collected
| |
− | |}
| |
− | | |
− | ==== Entity Velocity ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=4 | 0x15
| |
− | | Entity ID || Int || Entity's ID
| |
− | |-
| |
− | | Velocity X || Short || Velocity on the X axis
| |
− | |-
| |
− | | Velocity Y || Short || Velocity on the Y axis
| |
− | |-
| |
− | | Velocity Z || Short || Velocity on the Z axis
| |
− | |}
| |
− | | |
− | ==== Destroy Entitie s====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=2 | 0x16
| |
− | | Count || Byte || Length of following array
| |
− | |-
| |
− | | Entity IDs || Array of Int || The list of entities of destroy
| |
− | |}
| |
− | | |
− | ==== Entity ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=1 | 0x17
| |
− | | Entity ID || Int || Entity's ID
| |
− | |}
| |
− | | |
− | ==== Entity Relative Move ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=4| 0x18
| |
− | | Entity ID || Int || Entity's ID
| |
− | |-
| |
− | | DX || Byte || Change in X position as a [[Data_Types#Fixed-point_numbers|Fixed-Point number]]
| |
− | |-
| |
− | | DY || Byte || Change in Y position as a [[Data_Types#Fixed-point_numbers|Fixed-Point number]]
| |
− | |-
| |
− | | DZ || Byte || Change in Z position as a [[Data_Types#Fixed-point_numbers|Fixed-Point number]]
| |
− | |}
| |
− | | |
− | ==== Entity Look ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=3 | 0x19
| |
− | | Entity ID || Int || Entity's ID
| |
− | |-
| |
− | | Yaw || Byte || The X Axis rotation as a fraction of 360
| |
− | |-
| |
− | | Pitch || Byte || The Y Axis rotation as a fraction of 360
| |
− | |}
| |
− | | |
− | ==== Entity Look and Relative Move ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=6 | 0x1A
| |
− | | Entity ID || Int || Entity's ID
| |
− | |-
| |
− | | DX || Byte || Change in X position as a [[Data_Types#Fixed-point_numbers|Fixed-Point number]]
| |
− | |-
| |
− | | DY || Byte || Change in Y position as a [[Data_Types#Fixed-point_numbers|Fixed-Point number]]
| |
− | |-
| |
− | | DZ || Byte || Change in Z position as a [[Data_Types#Fixed-point_numbers|Fixed-Point number]]
| |
− | |-
| |
− | | Yaw || Byte || The X Axis rotation as a fraction of 360
| |
− | |-
| |
− | | Pitch || Byte || The Y Axis rotation as a fraction of 360
| |
− | |}
| |
− | | |
− | ==== Entity Teleport ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=6 | 0x1B
| |
− | | Entity ID || Int || Entity's ID
| |
− | |-
| |
− | | X || Byte || X position as a [[Data_Types#Fixed-point_numbers|Fixed-Point number]]
| |
− | |-
| |
− | | Y || Byte || Y position as a [[Data_Types#Fixed-point_numbers|Fixed-Point number]]
| |
− | |-
| |
− | | Z || Byte || Z position as a [[Data_Types#Fixed-point_numbers|Fixed-Point number]]
| |
− | |-
| |
− | | Yaw || Byte || The X Axis rotation as a fraction of 360
| |
− | |-
| |
− | | Pitch || Byte || The Y Axis rotation as a fraction of 360
| |
− | |}
| |
− | | |
− | ==== Entity Head Look ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=2 | 0x1C
| |
− | | Entity ID || Int || Entity's ID
| |
− | |-
| |
− | | Head Yaw || Byte || Head yaw in steps of 2p/256
| |
− | |}
| |
− | | |
− | ==== Entity Status ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=2 | 0x1D
| |
− | | Entity ID || Int || Entity's ID
| |
− | |-
| |
− | | Entity Status || Byte || See below
| |
− | |}
| |
− | | |
− | {| class="wikitable"
| |
− | |-
| |
− | ! Entity Status !! Meaning
| |
− | |-
| |
− | | 2 || Entity hurt
| |
− | |-
| |
− | | 3 || Entity dead
| |
− | |-
| |
− | | 6 || Wolf taming
| |
− | |-
| |
− | | 7 || Wolf tamed
| |
− | |-
| |
− | | 8 || Wolf shaking water off itself
| |
− | |-
| |
− | | 9 || (of self) Eating accepted by server
| |
− | |-
| |
− | | 10 || Sheep eating grass
| |
− | |-
| |
− | | 11 || Iron Golem handing over a rose
| |
− | |-
| |
− | | 12 || Spawn "heart" particles near a villager
| |
− | |-
| |
− | | 13 || Spawn particles indicating that a villager is angry and seeking revenge
| |
− | |-
| |
− | | 14 || Spawn happy particles near a villager
| |
− | |-
| |
− | | 15 || Spawn a "magic" particle near the Witch
| |
− | |-
| |
− | | 16 || Zombie converting into a villager by shaking violently (unused in recent update)
| |
− | |-
| |
− | | 17 || A firework exploding
| |
− | |}
| |
− | | |
− | ==== Attach Entity ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=3 | 0x1E
| |
− | | Entity ID || Int || Entity's ID
| |
− | |-
| |
− | | Vehicle ID || Int || Vechicle's Entity ID
| |
− | |-
| |
− | | Leash || Bool || If true leashes the entity to the vehicle
| |
− | |}
| |
− | | |
− | ==== Attach Entity ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=2 | 0x1F
| |
− | | Entity ID || Int || Entity's ID
| |
− | |-
| |
− | | Metadata || [[Entities#Entity_Metadata_Format|Metadata]] ||
| |
− | |}
| |
− | | |
− | ==== Entity Effect ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=4 | 0x20
| |
− | | Entity ID || Int || Entity's ID
| |
− | |-
| |
− | | Effect ID || Byte || See [[http://www.minecraftwiki.net/wiki/Potion_effect#Parameters]]
| |
− | |-
| |
− | | Amplifier || Byte ||
| |
− | |-
| |
− | | Duration || Short ||
| |
− | |}
| |
− | | |
− | ==== Remove Entity Effect ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=2 | 0x21
| |
− | | Entity ID || Int || Entity's ID
| |
− | |-
| |
− | | Effect ID || Byte ||
| |
− | |}
| |
− | | |
− | ==== Set Experience ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=3 | 0x22
| |
− | | Experience bar || Float || Between 0 and 1
| |
− | |-
| |
− | | Level || Short ||
| |
− | |-
| |
− | | Total Experience || Short ||
| |
− | |}
| |
− | | |
− | ==== Entity Properties ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=3 | 0x23
| |
− | | Entity ID || Int | Entity's ID
| |
− | |-
| |
− | | Count || Int || Length of following array
| |
− | |-
| |
− | | Properties || Array of Property Data ||
| |
− | |}
| |
− | | |
− | '''Property Data''' structure:
| |
− | {| class="wikitable"
| |
− | |-
| |
− | ! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | Key || String ||
| |
− | |-
| |
− | | Value || Double ||
| |
− | |-
| |
− | | List Length || Short || Number of list elements that follow.
| |
− | |-
| |
− | | Modifiers || Array of Modifier Data || http://www.minecraftwiki.net/wiki/Attribute#Modifiers
| |
− | |}
| |
− | | |
− | Known key values:
| |
− | {| class="wikitable"
| |
− | |-
| |
− | ! Key !! Default !! Min !! Max !! Label
| |
− | |-
| |
− | | generic.maxHealth || 20.0 || 0.0 || Double.MaxValue || Max Health
| |
− | |-
| |
− | | generic.followRange || 32.0 || 0.0 || 2048.0 || Follow Range
| |
− | |-
| |
− | | generic.knockbackResistance || 0.0 || 0.0 || 1.0 || Knockback Resistance
| |
− | |-
| |
− | | generic.movementSpeed || 0.699999988079071 || 0.0 || Double.MaxValue || Movement Speed
| |
− | |-
| |
− | | generic.attackDamage || 2.0 || 0.0 || Double.MaxValue ||
| |
− | |-
| |
− | | horse.jumpStrength || 0.7 || 0.0 || 2.0 || Jump Strength
| |
− | |-
| |
− | | zombie.spawnReinforcements || 0.0 || 0.0 || 1.0 || Spawn Reinforcements Chance
| |
− | |}
| |
− | | |
− | '''Modifier Data''' structure:
| |
− | {| class="wikitable"
| |
− | |-
| |
− | ! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | UUID || 128-bit integer ||
| |
− | |-
| |
− | | Amount || Double ||
| |
− | |-
| |
− | | Operation || Byte ||
| |
− | |}
| |
− | | |
− | ==== Chunk Data ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=7 | 0x24
| |
− | | Chunk X || Int || Chunk X coordinate
| |
− | |-
| |
− | | Chunk Z || Int || Chunk Z coordinate
| |
− | |-
| |
− | | Ground-Up continuous || Boolean || This is True if the packet represents all sections in this vertical column, where the primary bit map specifies exactly which sections are included, and which are air
| |
− | |-
| |
− | | Primary bit map || Unsigned Short || Bitmask with 1 for every 16x16x16 section which data follows in the compressed data.
| |
− | |-
| |
− | | Add bit map || Unsigned Short || Same as above, but this is used exclusively for the 'add' portion of the payload
| |
− | |-
| |
− | | Compressed size || Int || Size of compressed chunk data
| |
− | |-
| |
− | | Compressed data || Byte array || The chunk data is compressed using Zlib Deflate
| |
− | |}
| |
− | | |
− | ==== Multi Block Change ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=5 | 0x25
| |
− | | Chunk X || Int || Chunk X coordinate
| |
− | |-
| |
− | | Chunk Z || Int || Chunk Z Coordinate
| |
− | |-
| |
− | | Record count || Short || The number of blocks affected
| |
− | |-
| |
− | | Data size || Int || The total size of the data, in bytes. Should always be 4*record count
| |
− | |-
| |
− | | Records || Array of Records ||
| |
− | |}
| |
− | | |
− | '''Record'''
| |
− | {| class="wikitable"
| |
− | |-
| |
− | ! Bit mask !! Width !! Meaning
| |
− | |-
| |
− | | 00 00 00 0F || 4 bits || Block metadata
| |
− | |-
| |
− | | 00 00 FF F0 || 12 bits || Block ID
| |
− | |-
| |
− | | 00 FF 00 00 || 8 bits || Y co-ordinate
| |
− | |-
| |
− | | 0F 00 00 00 || 4 bits || Z co-ordinate, relative to chunk
| |
− | |-
| |
− | | F0 00 00 00 || 4 bits || X co-ordinate, relative to chunk
| |
− | |}
| |
− | | |
− | == Status ==
| |
| | | |
| === Clientbound === | | === Clientbound === |
| | | |
− | ==== ? ==== | + | ==== Clientbound Report Details (play) ==== |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=1 | 0x00
| |
− | | || String ||
| |
− | |}
| |
− | | |
− | | |
− | ==== ? ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=1 | 0x01
| |
− | | || Long ||
| |
− | |}
| |
− | | |
− | === Serverbound ===
| |
− | | |
− | ==== ? ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=1 | 0x00 || || ||
| |
− | |}
| |
− | | |
− | | |
− | ==== ? ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=1 | 0x01
| |
− | | || Long ||
| |
− | |}
| |
| | | |
− | == Login ==
| + | Contains a list of key-value text entries that are included in any crash or disconnection report generated during connection to the server. |
| | | |
− | === Clientbound ===
| + | {| class="wikitable" {{added}} |
− | | + | ! Packet ID |
− | ==== ? ====
| + | ! State |
− | {| class="wikitable" | + | ! Bound To |
− | ! Packet ID !! Field Name !! Field Type !! Notes | + | ! colspan="2"| Field Name |
− | |- | + | ! colspan="2"| Field Type |
− | | rowspan=1 | 0x00 | + | ! Notes |
− | | || String || | + | |- |
| + | | 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) |
| + | | |
| |} | | |} |
| | | |
| + | ==== 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). |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=5 | 0x01
| |
− | | || String ||
| |
− | |-
| |
− | | Length || Short ||
| |
− | |-
| |
− | | || Byte array ||
| |
− | |-
| |
− | | Length || Short ||
| |
− | |-
| |
− | | || Byte array ||
| |
− | |-
| |
− | |}
| |
| | | |
− | | + | {| class="wikitable" {{added}} |
− | ==== ? ====
| + | ! Packet ID |
− | {| class="wikitable" | + | ! State |
− | ! Packet ID !! Field Name !! Field Type !! Notes | + | ! Bound To |
− | |- | + | ! colspan="2"| Field Name |
− | | rowspan=2 | 0x02 | + | ! colspan="2"| Field Type |
− | | UUID || String || | + | ! Notes |
− | |- | + | |- |
− | | Name || String || | + | | 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. |
| |} | | |} |
| | | |
| + | {| 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 === | | === Serverbound === |
| | | |
− | ==== ? ====
| + | No changes so far. |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=1 | 0x00
| |
− | | Name || String ||
| |
− | |}
| |
− | | |
− | ==== ? ====
| |
− | {| class="wikitable"
| |
− | ! Packet ID !! Field Name !! Field Type !! Notes
| |
− | |-
| |
− | | rowspan=4 | 0x01
| |
− | | Length || Short ||
| |
− | |-
| |
− | | || Byte array ||
| |
− | |-
| |
− | | Length || Short ||
| |
− | |-
| |
− | | || Byte array ||
| |
− | |-
| |
− | |}
| |
| | | |
− | == Plugin Channels ==
| + | [[Category:Minecraft Modern]] |
− | | |
− | === MC|RPack ===
| |
− | {| class="wikitable"
| |
− | ! Field Name !! Field Type !! Example !! Notes
| |
− | |-
| |
− | | Resource pack URL || UTF8 string || http://example.com/pack.zip ||
| |
− | |}
| |