2018-12-03 17:22:47 -05:00
|
|
|
protocol_packet_ids!(
|
|
|
|
handshake Handshaking {
|
|
|
|
serverbound Serverbound {
|
|
|
|
0x00 => Handshake
|
|
|
|
}
|
|
|
|
clientbound Clientbound {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
play Play {
|
|
|
|
serverbound Serverbound {
|
|
|
|
0x00 => TeleportConfirm
|
|
|
|
0x01 => TabComplete
|
|
|
|
0x02 => ChatMessage
|
|
|
|
0x03 => ClientStatus
|
|
|
|
0x04 => ClientSettings
|
|
|
|
0x05 => ConfirmTransactionServerbound
|
|
|
|
0x06 => EnchantItem
|
|
|
|
0x07 => ClickWindow
|
|
|
|
0x08 => CloseWindow
|
|
|
|
0x09 => PluginMessageServerbound
|
1.16.1 protocol support (736) (#345)
* Update shifted packet ids
* Add new smithing recipe type
* Also support 1.16 (735), same packets as 1.16.1 (736)
New packets:
* GenerateStructure
New packet variants:
* UseEntity_Sneakflag, split from UseEntity_Hand
* ClientAbilities_u8, split from ClientAbilities_f32
* UpdateJigsawBlock_Joint, split from UpdateJigsawBlock_Type
* ServerMessage_Sender, split from ServerMessage_Position
* ChunkData_Biomes3D_bool, split from ChunkData_Biomes3D
* JoinGame_WorldNames, split from JoinGame_HashedSeed_Respawn
* Respawn_WorldName, split from Respawn_Gamemode
* EntityEquipment_VarInt renamed
* UpdateLight_WithTrust, split from UpdateLight_NoTrust
* LoginSuccess_UUID, split from LoginSuccess_String
2020-06-27 21:39:59 -04:00
|
|
|
0x0a => UseEntity_Hand
|
2018-12-03 17:22:47 -05:00
|
|
|
0x0b => KeepAliveServerbound_i64
|
|
|
|
0x0c => Player
|
|
|
|
0x0d => PlayerPosition
|
|
|
|
0x0e => PlayerPositionLook
|
|
|
|
0x0f => PlayerLook
|
|
|
|
0x10 => VehicleMove
|
|
|
|
0x11 => SteerBoat
|
|
|
|
0x12 => CraftRecipeRequest
|
1.16.1 protocol support (736) (#345)
* Update shifted packet ids
* Add new smithing recipe type
* Also support 1.16 (735), same packets as 1.16.1 (736)
New packets:
* GenerateStructure
New packet variants:
* UseEntity_Sneakflag, split from UseEntity_Hand
* ClientAbilities_u8, split from ClientAbilities_f32
* UpdateJigsawBlock_Joint, split from UpdateJigsawBlock_Type
* ServerMessage_Sender, split from ServerMessage_Position
* ChunkData_Biomes3D_bool, split from ChunkData_Biomes3D
* JoinGame_WorldNames, split from JoinGame_HashedSeed_Respawn
* Respawn_WorldName, split from Respawn_Gamemode
* EntityEquipment_VarInt renamed
* UpdateLight_WithTrust, split from UpdateLight_NoTrust
* LoginSuccess_UUID, split from LoginSuccess_String
2020-06-27 21:39:59 -04:00
|
|
|
0x13 => ClientAbilities_f32
|
2018-12-03 17:22:47 -05:00
|
|
|
0x14 => PlayerDigging
|
|
|
|
0x15 => PlayerAction
|
|
|
|
0x16 => SteerVehicle
|
|
|
|
0x17 => CraftingBookData
|
|
|
|
0x18 => ResourcePackStatus
|
|
|
|
0x19 => AdvancementTab
|
|
|
|
0x1a => HeldItemChange
|
|
|
|
0x1b => CreativeInventoryAction
|
|
|
|
0x1c => SetSign
|
|
|
|
0x1d => ArmSwing
|
|
|
|
0x1e => SpectateTeleport
|
2018-12-03 18:04:39 -05:00
|
|
|
0x1f => PlayerBlockPlacement_f32
|
2018-12-03 17:22:47 -05:00
|
|
|
0x20 => UseItem
|
|
|
|
}
|
|
|
|
clientbound Clientbound {
|
|
|
|
0x00 => SpawnObject
|
|
|
|
0x01 => SpawnExperienceOrb
|
|
|
|
0x02 => SpawnGlobalEntity
|
2019-12-29 18:55:19 -05:00
|
|
|
0x03 => SpawnMob_WithMeta
|
2019-08-17 16:36:07 -04:00
|
|
|
0x04 => SpawnPainting_VarInt
|
2018-12-03 22:29:02 -05:00
|
|
|
0x05 => SpawnPlayer_f64
|
2018-12-03 17:22:47 -05:00
|
|
|
0x06 => Animation
|
|
|
|
0x07 => Statistics
|
|
|
|
0x08 => BlockBreakAnimation
|
|
|
|
0x09 => UpdateBlockEntity
|
|
|
|
0x0a => BlockAction
|
1.7.10 (5) multiprotocol support (#64)
Adds 1.7.10 protocol version 5 support, a major update with significant changes.
Expands https://github.com/iceiix/steven/issues/18 Enhance protocol support
* Add v1_7_10 protocol packet structures and IDs
* EncryptionRequest/Response i16 variant in login protocol
* 1.7.10 slot NBT data parsing
* Support both 1.7/1.8+ item::Stack in read_from, using if protocol_verson
* 1.7.10 chunk format support, ChunkDataBulk_17 and ChunkData_17
* Extract dirty_chunks_by_bitmask from load_chunks17/18/19
* Implement keepalive i32 handler
* Send PlayerPositionLook_HeadY
* Send PlayerBlockPlacement_u8_Item_u8y
* Handle JoinGame_i8_NoDebug
* Handle SpawnPlayer_i32_HeldItem_String
* BlockChange_u8, MultiBlockChange_i16, UpdateBlockEntity_Data, EntityMove_i8_i32_NoGround, EntityLook_i32_NoGround, EntityLookAndMove_i8_i32_NoGround
* UpdateSign_u16, PlayerInfo_String, EntityDestroy_u8, EntityTeleport_i32_i32_NoGround
* Send feet_y = head_y - 1.62, fixes Illegal stance
https://wiki.vg/index.php?title=Protocol&oldid=6003#Player_Position
> Updates the players XYZ position on the server. If HeadY - FeetY is less than 0.1 or greater than 1.65, the stance is illegal and the client will be kicked with the message “Illegal Stance”.
> Absolute feet position, normally HeadY - 1.62. Used to modify the players bounding box when going up stairs, crouching, etc…
* Set on_ground = true in entity teleport, fixes bouncing
* Implement block change, fix metadata/id packing, bounce _u8 through on_block_change
* Implement on_multi_block_change_u16, used with explosions
2018-12-15 22:56:54 -05:00
|
|
|
0x0b => BlockChange_VarInt
|
2018-12-03 17:22:47 -05:00
|
|
|
0x0c => BossBar
|
|
|
|
0x0d => ServerDifficulty
|
|
|
|
0x0e => TabCompleteReply
|
1.16.1 protocol support (736) (#345)
* Update shifted packet ids
* Add new smithing recipe type
* Also support 1.16 (735), same packets as 1.16.1 (736)
New packets:
* GenerateStructure
New packet variants:
* UseEntity_Sneakflag, split from UseEntity_Hand
* ClientAbilities_u8, split from ClientAbilities_f32
* UpdateJigsawBlock_Joint, split from UpdateJigsawBlock_Type
* ServerMessage_Sender, split from ServerMessage_Position
* ChunkData_Biomes3D_bool, split from ChunkData_Biomes3D
* JoinGame_WorldNames, split from JoinGame_HashedSeed_Respawn
* Respawn_WorldName, split from Respawn_Gamemode
* EntityEquipment_VarInt renamed
* UpdateLight_WithTrust, split from UpdateLight_NoTrust
* LoginSuccess_UUID, split from LoginSuccess_String
2020-06-27 21:39:59 -04:00
|
|
|
0x0f => ServerMessage_Position
|
1.7.10 (5) multiprotocol support (#64)
Adds 1.7.10 protocol version 5 support, a major update with significant changes.
Expands https://github.com/iceiix/steven/issues/18 Enhance protocol support
* Add v1_7_10 protocol packet structures and IDs
* EncryptionRequest/Response i16 variant in login protocol
* 1.7.10 slot NBT data parsing
* Support both 1.7/1.8+ item::Stack in read_from, using if protocol_verson
* 1.7.10 chunk format support, ChunkDataBulk_17 and ChunkData_17
* Extract dirty_chunks_by_bitmask from load_chunks17/18/19
* Implement keepalive i32 handler
* Send PlayerPositionLook_HeadY
* Send PlayerBlockPlacement_u8_Item_u8y
* Handle JoinGame_i8_NoDebug
* Handle SpawnPlayer_i32_HeldItem_String
* BlockChange_u8, MultiBlockChange_i16, UpdateBlockEntity_Data, EntityMove_i8_i32_NoGround, EntityLook_i32_NoGround, EntityLookAndMove_i8_i32_NoGround
* UpdateSign_u16, PlayerInfo_String, EntityDestroy_u8, EntityTeleport_i32_i32_NoGround
* Send feet_y = head_y - 1.62, fixes Illegal stance
https://wiki.vg/index.php?title=Protocol&oldid=6003#Player_Position
> Updates the players XYZ position on the server. If HeadY - FeetY is less than 0.1 or greater than 1.65, the stance is illegal and the client will be kicked with the message “Illegal Stance”.
> Absolute feet position, normally HeadY - 1.62. Used to modify the players bounding box when going up stairs, crouching, etc…
* Set on_ground = true in entity teleport, fixes bouncing
* Implement block change, fix metadata/id packing, bounce _u8 through on_block_change
* Implement on_multi_block_change_u16, used with explosions
2018-12-15 22:56:54 -05:00
|
|
|
0x10 => MultiBlockChange_VarInt
|
2018-12-03 17:22:47 -05:00
|
|
|
0x11 => ConfirmTransaction
|
|
|
|
0x12 => WindowClose
|
|
|
|
0x13 => WindowOpen
|
2021-09-05 16:30:32 -04:00
|
|
|
0x14 => WindowItems_i16
|
2018-12-03 17:22:47 -05:00
|
|
|
0x15 => WindowProperty
|
|
|
|
0x16 => WindowSetSlot
|
|
|
|
0x17 => SetCooldown
|
|
|
|
0x18 => PluginMessageClientbound
|
|
|
|
0x19 => NamedSoundEffect
|
|
|
|
0x1a => Disconnect
|
|
|
|
0x1b => EntityAction
|
2021-09-05 16:30:32 -04:00
|
|
|
0x1c => Explosion_i32
|
2018-12-03 17:22:47 -05:00
|
|
|
0x1d => ChunkUnload
|
|
|
|
0x1e => ChangeGameState
|
|
|
|
0x1f => KeepAliveClientbound_i64
|
|
|
|
0x20 => ChunkData
|
|
|
|
0x21 => Effect
|
2019-01-26 16:39:25 -05:00
|
|
|
0x22 => Particle_VarIntArray
|
2018-12-03 19:06:20 -05:00
|
|
|
0x23 => JoinGame_i32
|
2020-12-28 17:02:05 -05:00
|
|
|
0x24 => Maps_NoLocked
|
2018-12-03 17:22:47 -05:00
|
|
|
0x25 => Entity
|
2018-12-03 22:29:02 -05:00
|
|
|
0x26 => EntityMove_i16
|
|
|
|
0x27 => EntityLookAndMove_i16
|
1.7.10 (5) multiprotocol support (#64)
Adds 1.7.10 protocol version 5 support, a major update with significant changes.
Expands https://github.com/iceiix/steven/issues/18 Enhance protocol support
* Add v1_7_10 protocol packet structures and IDs
* EncryptionRequest/Response i16 variant in login protocol
* 1.7.10 slot NBT data parsing
* Support both 1.7/1.8+ item::Stack in read_from, using if protocol_verson
* 1.7.10 chunk format support, ChunkDataBulk_17 and ChunkData_17
* Extract dirty_chunks_by_bitmask from load_chunks17/18/19
* Implement keepalive i32 handler
* Send PlayerPositionLook_HeadY
* Send PlayerBlockPlacement_u8_Item_u8y
* Handle JoinGame_i8_NoDebug
* Handle SpawnPlayer_i32_HeldItem_String
* BlockChange_u8, MultiBlockChange_i16, UpdateBlockEntity_Data, EntityMove_i8_i32_NoGround, EntityLook_i32_NoGround, EntityLookAndMove_i8_i32_NoGround
* UpdateSign_u16, PlayerInfo_String, EntityDestroy_u8, EntityTeleport_i32_i32_NoGround
* Send feet_y = head_y - 1.62, fixes Illegal stance
https://wiki.vg/index.php?title=Protocol&oldid=6003#Player_Position
> Updates the players XYZ position on the server. If HeadY - FeetY is less than 0.1 or greater than 1.65, the stance is illegal and the client will be kicked with the message “Illegal Stance”.
> Absolute feet position, normally HeadY - 1.62. Used to modify the players bounding box when going up stairs, crouching, etc…
* Set on_ground = true in entity teleport, fixes bouncing
* Implement block change, fix metadata/id packing, bounce _u8 through on_block_change
* Implement on_multi_block_change_u16, used with explosions
2018-12-15 22:56:54 -05:00
|
|
|
0x28 => EntityLook_VarInt
|
2018-12-03 17:22:47 -05:00
|
|
|
0x29 => VehicleTeleport
|
|
|
|
0x2a => SignEditorOpen
|
|
|
|
0x2b => CraftRecipeResponse
|
|
|
|
0x2c => PlayerAbilities
|
|
|
|
0x2d => CombatEvent
|
|
|
|
0x2e => PlayerInfo
|
2018-12-03 22:29:02 -05:00
|
|
|
0x2f => TeleportPlayer_WithConfirm
|
2018-12-03 17:22:47 -05:00
|
|
|
0x30 => EntityUsedBed
|
1.13.2 (404) multiprotocol support (#67)
Adds support for 1.13.2 protocol (404)
Expands https://github.com/iceiix/steven/issues/18 Enhance protocol support
Metadata:
* Support 1.13.2 slot data format, bool and varint item id, optional damage (moved to NBT)
https://wiki.vg/index.php?title=Slot_Data&type=revision&diff=14363&oldid=7835
Packets:
* Add 1.13.2 packets, and implement all the command data parsers
https://wiki.vg/Command_Data#Parsers
* Send new plugin channel minecraft:brand
https://wiki.vg/Plugin_channels#minecraft:brand
* Add 1.13.2 metadata format, with shifted IDs
https://wiki.vg/Entity_metadata#Entity_Metadata_Format
* Implement particle entity metadata
* Add structures for 16 new packets
Blocks: The Flattening:
* Assign flattened IDs in correct order using new 'offset' macro token
* Assign hierarchical (pre-flattening) block IDs sequentially by counting Some data
* Split VANILLA_ID_MAP into flat/hier struct, to support before and after the flattening
* Extend travis build time to 20 minutes because the blocks macro takes a long time
* Support both flat/hier blocks by passing protocol_version to by_vanilla_id
Add block states and offsets for all blocks, replacing metadata for 1.13+:
* Add stripped logs and what was Log2 to Log
* Add the Wood blocks, should be called bark, previously Axis::None Log
* Add leaves distance and offset
* Add jungle/acacia to Leaves moved from Leaves2
* Add dispenser offsets, direction
* Add note block states
* Add offset None to Missing253 and Missing254, no holes in block states of 1.13.2
* Add bed colors
* Add seagrass, tall seagrass, remove redundant deadgrass, and piston offset
* Add torch, TNT, fire offsets, remove slabs
* Add furnance offset, merges lit into a property
* Add pressure plate offsets, new pressure plates, redstone ore/lit merged
* Add lever offsets, new directions from ceiling/floor, rename LeverDirections
* Add redstone torch offsets, new blocks since lit/unlit is now merged, and standing/wall is split
* Change lever to split face/facing, rm LeverDirection, add AttachedFace
* Add stone button offsets, face/facing similar to lever
* Move face/facing data and variant to AttachedFace, reuse for lever/stonebutton
* Add data_with_facing_and_powered() to AttachedFace, for lever/stonebutton
* Add wooden button offsets each wood
* Add pumpkin without a face
* Add carved pumpkin, portal offsets
* Add lit pumpkin (as jack-o-lantern) offsets after carved pumpkin
* Add repeater offsets, merged into Repeater
* Change brown mushroom block to booleans instead of MushroomVariant
* Add mushroom block offsets, red/brown mushroom blocks, and a new mushroom stem block
* Add command block, cobblestone walls, and flower pot offsets
Empty flower pot, and potted plants including saplings. Rename
variant DarkOak to DarkOakSaplings because it is a sapling, and
remove the duplicate Dandelion variant which causes duplicate blocks.
* Increase recursion limit in steven_blocks
* Add colored banner offsets
* Add wooden slab including double slab, in a different position for pre-1.13 and 1.13
* StoneSlabVariant::Wood -> StoneSlabVariant::PetrifiedWood
* Add fence_gate_offset() for wooden fence gates
* Add frosted ice age, offset
* Add new blocks: kelp, turtle egg, coral, coral fans, sea pickle, blue ice, smooth stone
* Add new blocks: conduit, void air, cave aid, bubble column, last of the 1.13 blocks
2018-12-29 00:11:42 -05:00
|
|
|
0x31 => UnlockRecipes_NoSmelting
|
2018-12-03 17:22:47 -05:00
|
|
|
0x32 => EntityDestroy
|
|
|
|
0x33 => EntityRemoveEffect
|
|
|
|
0x34 => ResourcePackSend
|
1.16.1 protocol support (736) (#345)
* Update shifted packet ids
* Add new smithing recipe type
* Also support 1.16 (735), same packets as 1.16.1 (736)
New packets:
* GenerateStructure
New packet variants:
* UseEntity_Sneakflag, split from UseEntity_Hand
* ClientAbilities_u8, split from ClientAbilities_f32
* UpdateJigsawBlock_Joint, split from UpdateJigsawBlock_Type
* ServerMessage_Sender, split from ServerMessage_Position
* ChunkData_Biomes3D_bool, split from ChunkData_Biomes3D
* JoinGame_WorldNames, split from JoinGame_HashedSeed_Respawn
* Respawn_WorldName, split from Respawn_Gamemode
* EntityEquipment_VarInt renamed
* UpdateLight_WithTrust, split from UpdateLight_NoTrust
* LoginSuccess_UUID, split from LoginSuccess_String
2020-06-27 21:39:59 -04:00
|
|
|
0x35 => Respawn_Gamemode
|
2018-12-03 17:22:47 -05:00
|
|
|
0x36 => EntityHeadLook
|
|
|
|
0x37 => SelectAdvancementTab
|
|
|
|
0x38 => WorldBorder
|
|
|
|
0x39 => Camera
|
|
|
|
0x3a => SetCurrentHotbarSlot
|
|
|
|
0x3b => ScoreboardDisplay
|
|
|
|
0x3c => EntityMetadata
|
|
|
|
0x3d => EntityAttach
|
|
|
|
0x3e => EntityVelocity
|
1.16.1 protocol support (736) (#345)
* Update shifted packet ids
* Add new smithing recipe type
* Also support 1.16 (735), same packets as 1.16.1 (736)
New packets:
* GenerateStructure
New packet variants:
* UseEntity_Sneakflag, split from UseEntity_Hand
* ClientAbilities_u8, split from ClientAbilities_f32
* UpdateJigsawBlock_Joint, split from UpdateJigsawBlock_Type
* ServerMessage_Sender, split from ServerMessage_Position
* ChunkData_Biomes3D_bool, split from ChunkData_Biomes3D
* JoinGame_WorldNames, split from JoinGame_HashedSeed_Respawn
* Respawn_WorldName, split from Respawn_Gamemode
* EntityEquipment_VarInt renamed
* UpdateLight_WithTrust, split from UpdateLight_NoTrust
* LoginSuccess_UUID, split from LoginSuccess_String
2020-06-27 21:39:59 -04:00
|
|
|
0x3f => EntityEquipment_VarInt
|
2018-12-03 17:22:47 -05:00
|
|
|
0x40 => SetExperience
|
|
|
|
0x41 => UpdateHealth
|
|
|
|
0x42 => ScoreboardObjective
|
|
|
|
0x43 => SetPassengers
|
2019-08-11 20:46:34 -04:00
|
|
|
0x44 => Teams_u8
|
2018-12-03 17:22:47 -05:00
|
|
|
0x45 => UpdateScore
|
2021-09-05 16:30:32 -04:00
|
|
|
0x46 => SpawnPosition_NoAngle
|
2018-12-03 17:22:47 -05:00
|
|
|
0x47 => TimeUpdate
|
|
|
|
0x48 => Title
|
|
|
|
0x49 => SoundEffect
|
|
|
|
0x4a => PlayerListHeaderFooter
|
|
|
|
0x4b => CollectItem
|
2018-12-03 22:29:02 -05:00
|
|
|
0x4c => EntityTeleport_f64
|
2018-12-03 17:22:47 -05:00
|
|
|
0x4d => Advancements
|
2021-09-05 16:30:32 -04:00
|
|
|
0x4e => EntityProperties_VarInt
|
2018-12-03 17:22:47 -05:00
|
|
|
0x4f => EntityEffect
|
|
|
|
}
|
|
|
|
}
|
|
|
|
login Login {
|
|
|
|
serverbound Serverbound {
|
|
|
|
0x00 => LoginStart
|
|
|
|
0x01 => EncryptionResponse
|
|
|
|
}
|
|
|
|
clientbound Clientbound {
|
|
|
|
0x00 => LoginDisconnect
|
|
|
|
0x01 => EncryptionRequest
|
1.16.1 protocol support (736) (#345)
* Update shifted packet ids
* Add new smithing recipe type
* Also support 1.16 (735), same packets as 1.16.1 (736)
New packets:
* GenerateStructure
New packet variants:
* UseEntity_Sneakflag, split from UseEntity_Hand
* ClientAbilities_u8, split from ClientAbilities_f32
* UpdateJigsawBlock_Joint, split from UpdateJigsawBlock_Type
* ServerMessage_Sender, split from ServerMessage_Position
* ChunkData_Biomes3D_bool, split from ChunkData_Biomes3D
* JoinGame_WorldNames, split from JoinGame_HashedSeed_Respawn
* Respawn_WorldName, split from Respawn_Gamemode
* EntityEquipment_VarInt renamed
* UpdateLight_WithTrust, split from UpdateLight_NoTrust
* LoginSuccess_UUID, split from LoginSuccess_String
2020-06-27 21:39:59 -04:00
|
|
|
0x02 => LoginSuccess_String
|
2018-12-03 17:22:47 -05:00
|
|
|
0x03 => SetInitialCompression
|
|
|
|
}
|
|
|
|
}
|
|
|
|
status Status {
|
|
|
|
serverbound Serverbound {
|
|
|
|
0x00 => StatusRequest
|
|
|
|
0x01 => StatusPing
|
|
|
|
}
|
|
|
|
clientbound Clientbound {
|
|
|
|
0x00 => StatusResponse
|
|
|
|
0x01 => StatusPong
|
|
|
|
}
|
|
|
|
}
|
|
|
|
);
|