diff --git a/backend/__init__.py b/backend/__init__.py index 605b4a3..47b42bd 100644 --- a/backend/__init__.py +++ b/backend/__init__.py @@ -64,7 +64,12 @@ def get_me(sid, room): sio.emit('me', data={'error':'Wrong password/Cannot connect'}, room=sid) else: sio.emit('me', data=sio.get_session(sid).name, room=sid) - sio.emit('change_username', room=sid) + if room['username'] == None or any([p.name == room['username'] for p in sio.get_session(sid).game.players]): + sio.emit('change_username', room=sid) + else: + sio.get_session(sid).name = room['username'] + sio.emit('me', data=sio.get_session(sid).name, room=sid) + sio.get_session(sid).game.notify_room() @sio.event def disconnect(sid): diff --git a/backend/bang/game.py b/backend/bang/game.py index b6fc0b1..6d10765 100644 --- a/backend/bang/game.py +++ b/backend/bang/game.py @@ -227,7 +227,7 @@ class Game: def handle_disconnect(self, player: players.Player): print(f'player {player.name} left the game {self.name}') if player in self.players: - if self.disconnect_bot: + if self.disconnect_bot and self.started: player.is_bot = True else: self.player_death(player=player, disconnected=True) @@ -319,6 +319,7 @@ class Game: print('resetting lobby') self.players.extend(self.dead_players) self.dead_players = [] + self.players = [p for p in self.players if not p.is_bot] print(self.players) self.started = False self.waiting_for = 0 diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 36179cc..43eac7f 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -7,7 +7,7 @@

{{$t("warning")}}

{{$t("connection_error")}}

-