fix: fixed multiple login bug

Fixed a bug that allowed a player to login as the same character several times at the same time
This commit is contained in:
Marlow Alfonso 2023-11-17 17:47:46 +00:00
parent 1ce3fa5d32
commit 1aca2d58b3
2 changed files with 15 additions and 15 deletions

View File

@ -16,21 +16,16 @@ def go(mud, id, players, rooms, params):
exit = params_list[0]
room = rooms[players[id]["room"]]
if exit in room["exits"]:
for pid, pl in players.items():
if players[pid]["room"] == players[id]["room"] \
and pid != id:
mud.send_message(pid, "{} left via exit '{}'".format(players[id]["name"], exit))
players[id]["room"] = room["exits"][exit]
mud.send_message(id, "You arrive at " + players[id]["room"])
for pid, pl in players.items():
if players[pid]["room"] == players[id]["room"] and pid != id:
players[id]["room"] = room["exits"][exit]
mud.send_message(id, "You arrive at '{}'".format(players[id]["room"]))
for pid, pl in players.items():
if players[pid]["room"] == players[id]["room"] \
and pid != id:
mud.send_message(pid,
"{} arrived via exit '{}'".format(players[id]["name"], exit))
if players[pid]["room"] == players[id]["room"] and pid != id:
mud.send_message(pid, "{} arrived via exit '{}'".format(players[id]["name"], exit))
else:
mud.send_message(id, "Unknown exit " + exit)
mud.send_message(id, "Unknown exit '{}'".format(exit))
def look(mud, id, players, rooms, params):
params_list = params.split()

11
run.py
View File

@ -136,9 +136,14 @@ You can log in to your character typing:
if params_list[1] != pl["password"]:
mud.send_message(id, "Wrong password")
continue
add_player(id, name, pl["species"], pl["description"], pl["room"])
waitlist.pop(id)
break
for pid, pl in players.items():
if name in pl["name"]:
mud.send_message(id, "That character is already connected")
break
else:
add_player(id, name, pl["species"], pl["description"], pl["room"])
waitlist.pop(id)
break
else:
mud.send_message(id, "Unknown command " + command)