[Feat] Prevent the creation of more than 1 game per user
release-tag / release-image (push) Successful in 12s

Closes legonzaur/heron-realms-front#43
This commit is contained in:
2024-05-16 14:59:24 +02:00
parent ea52589aab
commit 97ce08e12a
3 changed files with 14 additions and 4 deletions
+5 -1
View File
@@ -17,10 +17,14 @@ class GameController:
lobby_controller: "LobbyController"
game: Game
clients: list[ClientController]
owner: str
def __init__(self, game: Game, lobby_controller: "LobbyController") -> None:
def __init__(
self, game: Game, lobby_controller: "LobbyController", owner: str
) -> None:
self.lobby_controller: "LobbyController" = lobby_controller
self.game: Game = game
self.owner = owner
self.clients: list[ClientController] = []
self.game.listeners.append(self.broadcast_announce_dict)
+6 -2
View File
@@ -36,8 +36,12 @@ class LobbyController:
if c.game_client is None:
await c.send(message)
async def create_game(self):
game_ctrler = GameController(self.lobby.create_game(), self)
async def create_game(self, discord_uid: str):
if any(g.owner == discord_uid for g in self.games):
return print(
"The number of created games per discord account is currently set to 1"
)
game_ctrler = GameController(self.lobby.create_game(), self, discord_uid)
self.games.append(game_ctrler)
await game_ctrler.game.init_game()
await self.broadcast_to_unconnected(
+3 -1
View File
@@ -156,7 +156,9 @@ class LobbyClientController:
async def lobby_context(self, message: Message) -> None:
if message.type == MessageType.CREATE:
if message.data_type == "game":
game_ctrler = await self.lobby_controller.create_game()
game_ctrler = await self.lobby_controller.create_game(self.discord_uid)
if game_ctrler is None:
return print("Cannot create game")
self.game_client = ClientController(game_ctrler, self.websocket)
self.on_message = self.game_context
await self.game_client.game_controller.announce_game(self.websocket)