{ types : { aliases : { ProtocolState : varint } primitives : { varint : int32_t string : std::string uuid : MinecraftUUID position: BlockPos uint64 : uint64_t int64 : int64_t uint32 : uint32_t int32 : int32_t uint16 : uint16_t int16 : int16_t uint8 : uint8_t int8 : int8_t byte : uint8_t bool : uint8_t } } states : { Handholding : -1 Play : 0 Status : 1 Login : 2 } messages : { handholding : { serverbound : { Handshake : { id : 0 vars : { protocolVersion : varint serverIP : string[255] port : uint16 intention : ProtocolState } } } } status : { clientbound : { Response : { id : 0 vars : { jsonResponse : string[32767] } } Pong : { id : 1 vars : { timestamp : uint64 } } } serverbound : { Request : { id : 0 vars : { } } Ping : { id : 1 vars : { timestamp : uint64 } } } } login : { clientbound : { Disconnect : { id : 0 vars : { reason : string[32767] } } Success : { id : 2 vars : { uuid : string[32] username : string[16] } } } serverbound : { Start : { id : 0 vars : { username : string[16] } } } } play : { serverbound: { ChatMessage: { id : 0x03 vars : { message : string[256] } } KeepAlive: { id : 0x0F vars : { id : int64 } } } clientbound : { ChatMessage: { id : 0x0F vars : { jsonData : string[32767] position : uint8 } } JoinGame : { id : 38 vars : { entityId : int32 gamemode : uint8 dimension : int32 seedHash : uint64 maxPlayers : uint8 levelType : string[16] viewDistance : varint reducedDebugInfo : bool enableRespawnScreen : bool } } KeepAlive: { id: 0x21 vars: { id: int64 } } PlayerPositionAndLook: { id: 0x36 enums: { RelativeFlags: { X: 1, Y: 2, Z: 4, Y_ROT: 8, X_ROT: 16, } } aliases: { RelativeFlags: byte } vars: { x: double y: double z: double // xRot is yaw, yRot is pitch xRot: float yRot: float flags: RelativeFlags id: varint } } SpawnPosition: { id: 0x4E vars: { location: position } } } } } }