fix: matchmaking required min 1 player #5

This commit is contained in:
2024-02-20 14:04:38 +01:00
parent 6b42a99404
commit 4d2d4dfb98
3 changed files with 48 additions and 9 deletions

View File

@ -23,11 +23,20 @@ class MatchMaking(WebsocketConsumer):
self.channel_layer.group_add(self.group_name, self.channel_name)
self.mode = int(self.scope['url_route']['kwargs']['mode'])
self.mode: int = int(self.scope['url_route']['kwargs']['mode'])
self.group_name = self.mode
waiting_room: WaitingRoom = normal.get(self.mode)
waiting_room.append(Waiter(user.pk, self))
if (self.mode < 2):
data: dict = {
"detail": "The mode must be > 1.",
}
self.send(json.dumps(data))
self.disconnect(1000)
return
waiting_room.broadcast(f"{len(waiting_room)} / {waiting_room.mode}")
if (len(waiting_room) == waiting_room.mode):
game_id: int = GameModel().create(waiting_room.get_users_id())
@ -35,7 +44,8 @@ class MatchMaking(WebsocketConsumer):
waiting_room.clear()
def disconnect(self, close_code):
super().close(close_code)
waiting_room: WaitingRoom = normal.get(self.mode)
waiter: Waiter = waiting_room.get_member_by_socket(self)
if (waiter is not None):
waiting_room.remove(waiter, 1016)
waiting_room.remove(waiter, close_code)