Protocol
Encoding
PluginQuery uses BigEndian. Both sender and receiver must have the same encryption and compression method. Otherwise, it will be rejected as a corrupted packet.
Type | Length |
Byte | 1 Byte |
Long | 8 Byte |
Integer | 4 Byte |
Byte Array | Max. 4 GigaByte |
Handshaking
Handshaking is required to make a connection between servers. Handshaking used to make sure that you're trying to send and receive query messages. It also used to check the compression and encryption method on client and server. Once the client and the server handshaken, the client doesn't have to send a handshake packet again, except if the client disconnects from the server.
Request Packet
Type | Description | Value |
Byte | Length of PluginQuery protocol name | 5 |
Byte Array | PluginQuery protocol name (Maximum Length: 127) | query |
Long | Most Significant Bits (UUID) | |
Long | Least Significant Bits (UUID) | |
Byte | Length of Encrypted Stringified UUID | |
Byte Array | Encrypted Stringified UUID (Maximum Length: 127) |
Sending Query Message
Query Messages are compressed and encrypted. You need to know the compression algorithm and the encryption key in order to encode the packet. Decompression and Decryption are happening before the packet decoded.
Type | Description |
Byte | Channel name length |
Byte Array | Channel name (Maximum Length: 127) |
Integer | Message length |
Byte Array | Query Message (Maximum Length: 4 Giga) |
Pipeline
Inbound
Order |
Decrypt |
Decompress |
Decode |
Outbound
Order |
Encode |
Compress |
Encrypt |
Last updated