Archived
[Feat] Prevent the creation of more than 1 game per user
release-tag / release-image (push) Successful in 12s
release-tag / release-image (push) Successful in 12s
Closes legonzaur/heron-realms-front#43
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user