Files
WLUS/AuthServer.py
Wesley d4044a1d4b Re-Implemented Database
Fixed character loading issues and added a new database
2018-06-01 19:24:59 -04:00

28 lines
1.2 KiB
Python

import pyraknet.server as Server
from pyraknet.messages import Address
from typing import Any, Callable
from GameManager import *
import AuthPackets
import threading
from ServerUtilities import *
from core import GameServer
from GameDB import GameDB
class AuthServer(GameServer):
def __init__(self, address: Address, max_connections: int, incoming_password: bytes, GameManager : GameManager, CDClient : GameDB, ServerDB : GameDB):
super().__init__(address, max_connections, incoming_password, GameManager, CDClient, ServerDB)
self.add_handler(Server.Event.UserPacket, self.handlePacket)
self.AuthHandlers = {}
self.registerAuthHandler(PacketHeader.ClientLoginInfo.value, AuthPackets.HandleLogin)
self.registerAuthHandler(PacketHeader.Handshake.value, AuthPackets.HandleHandshake)
print("Auth Server Started")
def handlePacket(self, data : bytes, address):
if(data[0:8] in self.AuthHandlers):
t = threading.Thread(target=self.AuthHandlers[data[0:8]], args=[self, data[8:], address])
t.start()
else:
print("Header {} Has No Handler!".format(data[0:8]))
def registerAuthHandler(self, header : PacketHeader, function : Callable):
self.AuthHandlers[header] = function