fix username renaming

This commit is contained in:
Alberto Xamin 2023-04-09 12:22:42 +01:00
parent bda273849b
commit 340c86b5db
No known key found for this signature in database
GPG Key ID: 5ABFCD8A22EA6F5D

View File

@ -262,15 +262,18 @@ def get_me(sid, data):
if sio.get_session(sid).game: if sio.get_session(sid).game:
sio.get_session(sid).game.notify_room() sio.get_session(sid).game.notify_room()
else: else:
dt = data["discord_token"] if "discord_token" in data else None dt = data.get("discord_token", None)
sio.save_session(sid, Player("player", sid, discord_token=dt)) username = data.get("username", "player")
sio.save_session(sid, Player(username, sid, discord_token=dt))
if "replay" in data and data["replay"] is not None: if "replay" in data and data["replay"] is not None:
create_room(sid, data["replay"]) create_room(sid, data["replay"])
sid = sio.get_session(sid) sid = sio.get_session(sid)
sid.game.is_hidden = True sid.game.is_hidden = True
eventlet.sleep(0.5) eventlet.sleep(0.5)
response = requests.get( response = requests.get(
f"https://hastebin.com/raw/{data['replay']}", headers=HASTEBIN_HEADERS f"https://hastebin.com/raw/{data['replay']}",
headers=HASTEBIN_HEADERS,
timeout=3,
) )
if response.status_code != 200: if response.status_code != 200:
sio.emit( sio.emit(
@ -291,9 +294,9 @@ def get_me(sid, data):
join_room(sid, data) join_room(sid, data)
elif room.started: elif room.started:
print("room exists") print("room exists")
if data["username"] is not None and any( if username != "player" and any(
( (
p.name == data["username"] p.name == username
for p in room.players for p in room.players
if ( if (
p.is_bot p.is_bot
@ -311,7 +314,7 @@ def get_me(sid, data):
or (dt is not None and p.discord_token == dt) or (dt is not None and p.discord_token == dt)
or p.sid is None or p.sid is None
) )
and p.name == data["username"] and p.name == username
][0] ][0]
bot.sid = sid bot.sid = sid
bot.is_bot = False bot.is_bot = False
@ -344,25 +347,28 @@ def get_me(sid, data):
room.notify_event_card_wildwestshow(sid) room.notify_event_card_wildwestshow(sid)
else: else:
create_room(sid, data["name"]) create_room(sid, data["name"])
if (p := sio.get_session(sid)).game is None: p: Player = sio.get_session(sid)
if p.game is None:
sio.emit("me", data={"error": "Wrong password/Cannot connect"}, room=sid) sio.emit("me", data={"error": "Wrong password/Cannot connect"}, room=sid)
else: else:
sio.emit("me", data=p.name, room=sid) sio.emit("me", data=p.name, room=sid)
if data["username"] is None or any( if username == "player" or any(
( (
pl.name == data["username"] pl.name == username
for pl in p.game.players for pl in p.game.players
if not ( if not (
(dt is not None and pl.discord_token == dt) or pl.sid is None (dt is not None and pl.discord_token == dt)
or pl.sid is None
or pl == p
) )
) )
): ):
sio.emit("change_username", room=sid) sio.emit("change_username", room=sid)
else: elif p.name != username:
sio.emit( sio.emit(
"chat_message", "chat_message",
room=p.game.name, room=p.game.name,
data=f"_change_username|{p.name}|{data['username']}", data=f"_change_username|{p.name}|{username}",
) )
p.name = data["username"] p.name = data["username"]
sio.emit("me", data=p.name, room=sid) sio.emit("me", data=p.name, room=sid)