Packet handling order of operations notes
This commit is contained in:
@@ -8,16 +8,19 @@ logger = logging.getLogger(__name__)
|
||||
|
||||
STATE_CONNECTING = 0
|
||||
STATE_AUTH = 1
|
||||
STATE_CONNECTED = 2
|
||||
|
||||
class PlayerClient(BaseClient):
|
||||
def __init__(self, server: "__ServerInstance__", ip: str, port: int):
|
||||
super().__init__(server, ip, port)
|
||||
logger.debug("Client resolved to PlayerClient")
|
||||
|
||||
# TODO: check if banned and handle here
|
||||
|
||||
self.state = STATE_CONNECTING
|
||||
|
||||
self.handlers = {
|
||||
0x18: self.on_connection_request,
|
||||
STATE_CONNECTING: self.on_connection_request,
|
||||
#0x00: self.on_state_dependent_handle
|
||||
}
|
||||
|
||||
@@ -26,10 +29,7 @@ class PlayerClient(BaseClient):
|
||||
|
||||
try:
|
||||
packet = self.server.compressor.decompress(packet)
|
||||
|
||||
|
||||
|
||||
await self.handlers.get(packet[0], self.on_unimplemented)(packet)
|
||||
await self.handlers.get(self.state, self.on_unimplemented)(packet)
|
||||
except Exception as err:
|
||||
logger.error(err)
|
||||
|
||||
@@ -54,7 +54,7 @@ class PlayerClient(BaseClient):
|
||||
|
||||
logger.debug("challenge: passed")
|
||||
|
||||
self.state = STATE_AUTH
|
||||
self.state = STATE_CONNECTED
|
||||
await self.send(b"\x19\x00") # Challenge passed
|
||||
|
||||
async def parse_internal_packet(self, packet: bytes):
|
||||
|
||||
Reference in New Issue
Block a user