|
Current Public Protocol (v7)
|
|
02-27-2010, 08:09 AM
(This post was last modified: 02-27-2010 12:06 PM by TkTech.)
Post: #1
|
|||
|
|||
|
(Note: because Java uses Big Endian internally, all datatypes are also in big endian.)
Datatypes
Client => Server All of these packets are sent from the client to the server. The packet may be reused by the server. Handshake Packet ID: (0x00 | 0) Packet Length: (0x83 | 131) Description: Sent when a user first connects to the server. The only interesting tidbit here is the Authentication Token, which is a MD5 hash generated from the salt sent to the list server by the game server in its heartbeat. Packet { Packet ID: char Protocol Version: char Username: string Authentication Token: string Unknown: char } Set Block Packet ID: (0x05 | 5) Packet Length: (0x09 | 9) Description: Creates (Mode = 0x01) or destroys (Mode = 0x00) the block located at <X,Y,Z> Packet { Packet ID: char X Position: short Y Position: short Z Position: short Mode: char Block Type: char } Move Update Packet ID: (0x08 | 8) Packet Length: (0x0A | 10) Description: Packet { Packet ID: char Player ID: char X Position: short Y Position: short Z Position: short Heading: char Pitch: char } Chat Message Packet ID: (0x0D | 14) Packet Length: (0x42 | 66) Description: Contains a chat message sent from the client to the server. At the moment, the convention is; chat prefixed with a '/' is a server command, chat prefixed with a '@' is a whisper to another user. Packet { Packet ID: char Unknown: char Message: string } Server => Client Handshake Packet ID: (0x00 | 0) Packet Length: (0x83 | 131) Packet { Packet ID: char Protocol Version: char Server Name: string MOTD: string Usertype: char } Ping Packet ID: (0x01 | 1) Packet Length: (0x01 | 1) Packet { Packet ID: char } Map Init Packet ID (0x02 | 2) Packet Length: (0x01 | 1) Packet { Packet ID: char } Map Chunk Packet ID: (0x03 | 3) Packet Length: (0x0404 | 1028) Packet { Packet ID: char Chunk Length: short Chunk: array Percentage sent (0-100): char } Map Finish Packet ID: (0x04 | 4) Packet Length: (0x07 | 7) Packet { Packet ID: char Map dimension (X): short Map dimension (Y): short Map dimension (Z): short } Block Update Packet ID: (0x06 | 6) Packet Length: (0x08 | 8) Packet { Packet ID: char Block position (X): short Block position (Y): short Block position (Z): short Block type: char } Player Teleport Packet ID: (0x08 | 8) Packet Length: (0x0A | 10) Packet { Packet ID: char Player ID: char Player position (X): short Player position (Y): short Player position (Z): short Camera Heading: char Camera Pitch: char } (Note: Work in progress) Programming Discussion and Help | Want to email me? |
|||
|
« Next Oldest | Next Newest »
|



