theoretically reworked packet structure for gamestart event + fixed client issue flooding the server with packets

This commit is contained in:
2024-01-15 10:26:14 +01:00
parent afa2d779a1
commit 1a9f49f5e9
30 changed files with 205 additions and 34 deletions

View File

@ -46,7 +46,10 @@ class GameManager:
def startGame(self, tcpSocket:socket):
self.__state = "running"
players = list(self.__serverWorld.getPlayers)
print("game starts")
self.logger.info("game manager is starting the game")
for userAddr in self.__users.keys():
try:
user = self.__serverWorld.getPlayers[userAddr]["player"]
@ -56,12 +59,23 @@ class GameManager:
cards = user.getDeck()
user.setHand(cards[:5])
enemy = players[0]["player"]
if enemy == user:
enemy = players[1]["player"]
payload = {
"event":"startgame",
"playermana": user.getMana(),
"playerhp": user.getHP(),
"playername": user.getName(),
"hand": user.getHand()
"player": {
"mana":user.getMana(),
"hp": user.getHP(),
"hand": user.getHand()
},
"enemy": {
"id": enemy.getID(),
"name": enemy.getName(),
"hp": enemy.getHP(),
},
}
tcpSocket.send(json.dumps(payload).encode())
@ -100,4 +114,8 @@ class GameManager:
self.logger.info("2 players have join game starts")
self.startGame(socket)
return self.__players
return self.__players
def removePlayers(self, clientAddr):
self.logger.info(f"removing player with address '{clientAddr}' from players database")
del self.__players[clientAddr]

View File

@ -102,6 +102,9 @@ class NetworkManager:
if e.errno == 10054:
self.__gameManager.getLogger().error(f"Connection with {client_address} forcibly closed by remote host.")
players = self.__gameManager.getPlayers()
self.__gameManager.removePlayers(client_address)
self.__gameManager.getLogger().info(f"new player length {len(players)}")
break
self.__gameManager.getLogger().error(f"Socket error receiving data from {client_address}: {e}")