Expand description
The dispatch
module contains functions that will change the state of the active Connection
.
Each function in dispatch
corresponds not to a specific packet, but to a whole state.
Each state has different packets, and a packet can be named the name but have different intent
based on state.
§Example of state switch
(Initial state: ‘Handshake’) We receive a Handshake packet, ID=0x00 with next_state(VarInt Enum) set to: 1: we switch the connection state to ‘Status’. 2: we switch the connection state to ‘Login’. 3: we switch the connection state to ‘Transfer’.
Functions§
- configuration
- https://minecraft.wiki/w/Java_Edition_protocol/Packets#Configuration
- handshaking
- https://minecraft.wiki/w/Java_Edition_protocol/Packets#Handshaking
- login
- https://minecraft.wiki/w/Java_Edition_protocol/Packets#Login
- play
- https://minecraft.wiki/w/Java_Edition_protocol/Packets#Play The largest state with over 60 different types of packets, the last one being 0x41 (65).
- status
- https://minecraft.wiki/w/Java_Edition_protocol/Packets#Status
- transfer
- https://minecraft.wiki/w/Java_Edition_protocol/Packets#Transfer I don’t really know which packets should be handled here.