mirror of
https://github.com/Pumpkin-MC/Pumpkin.git
synced 2026-08-30 20:14:23 +00:00
protocol doc: miss how to register packets
This commit is contained in:
@@ -1,12 +1,11 @@
|
||||
### Pumpkin Protocol
|
||||
Contains all Serverbound(Client->Server) and Clientbound(Server->Client) Packets.
|
||||
The packets are sorted by their folder architecture you find:
|
||||
|
||||
Serverbound Packets under:
|
||||
`server`
|
||||
Clientbound Packets under:
|
||||
`client`
|
||||
Than they both have folders for packets for all their diffrent states:
|
||||
Packets in the Pumpkin protocol are organized by functionality and state.
|
||||
|
||||
`server`: Contains definitions for serverbound packets.
|
||||
|
||||
`client`: Contains definitions for clientbound packets.
|
||||
|
||||
### States:
|
||||
**Handshake**: Always the first packet being send from the Client. This begins also determins the next state, usally to indicate if the player thans perform a Status Request, Join the Server or wants to be transfered.
|
||||
@@ -25,8 +24,11 @@ You also can see all the information the Packets has which we can either Write o
|
||||
#### Adding a Serverbound Packet
|
||||
Serverbound Packets do use the trait `ServerPacket` which has an packet id (use hex) and can read incoming Client packets.
|
||||
https://wiki.vg/Protocol gives you the Packet structure which you can than read. Feel free to orientate on already existing Packets.
|
||||
Please use a name structure like `SPacketName` for the struct, The 'S' representing its Serverbound
|
||||
Please use a name structure like `SPacketName` for the struct, The 'S' representing its Serverbound.
|
||||
Registering: Don't forget to register the Packet. All Packets before the Player is created so before the Play state. Are using the `ClientPacketProcessor` which calls the packet at `Client::handle_packet` (both in the pumpkin crate)
|
||||
#### Adding a Clientbound Packet
|
||||
Clientbound Packets do use the trait `ClientPacket` which has an packet id (use hex) and can write outgoining Server packets.
|
||||
https://wiki.vg/Protocol gives you the Packet structure which you can than write. Feel free to orientate on already existing Packets.
|
||||
Please use a name structure like `CPacketName` for the struct, The 'C' representing its Clientbound
|
||||
Please use a name structure like `CPacketName` for the struct, The 'C' representing its Clientbound.
|
||||
You don't need to register the Packet anywhere, You should just be able now to send it via `Client::send_packet` this will get a result. You should kick the client when an important Packet could't been send. Otherwise
|
||||
just log an warn.
|
||||
Reference in New Issue
Block a user