From f9712e026f3ba0de39afb3c4f9d832478a6ac6b7 Mon Sep 17 00:00:00 2001 From: "Vgr E. Barry" Date: Mon, 30 Apr 2018 16:46:06 -0400 Subject: [PATCH] Properly delete users from UserDict instances --- src/roles/doomsayer.py | 4 ++-- src/roles/dullahan.py | 3 ++- src/roles/harlot.py | 2 +- src/roles/hunter.py | 6 +++--- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/roles/doomsayer.py b/src/roles/doomsayer.py index 6c74be3..e90ecab 100644 --- a/src/roles/doomsayer.py +++ b/src/roles/doomsayer.py @@ -58,12 +58,12 @@ def on_exchange(evt, var, actor, target, actor_role, target_role): if actor_role == "doomsayer" and target_role != "doomsayer": SEEN.discard(actor) for name, mapping in _mappings: - mapping.pop(actor, None) + del mapping[:actor:] elif target_role == "doomsayer" and actor_role != "doomsayer": SEEN.discard(target) for name, mapping in _mappings: - mapping.pop(target, None) + del mapping[:target:] @event_listener("del_player") def on_del_player(evt, var, user, mainrole, allroles, death_triggers): diff --git a/src/roles/dullahan.py b/src/roles/dullahan.py index 3582384..619726e 100644 --- a/src/roles/dullahan.py +++ b/src/roles/dullahan.py @@ -42,7 +42,8 @@ def dullahan_kill(var, wrapper, message): @command("retract", "r", chan=False, pm=True, playing=True, phases=("night",), roles=("dullahan",)) def dullahan_retract(var, wrapper, message): """Removes a dullahan's kill selection.""" - if KILLS.pop(wrapper.source, None): + if wrapper.source in KILLS: + del KILLS[wrapper.source] wrapper.pm(messages["retracted_kill"]) debuglog("{0} (dullahan) RETRACT".format(wrapper.source)) diff --git a/src/roles/harlot.py b/src/roles/harlot.py index bb9fffb..b3015e7 100644 --- a/src/roles/harlot.py +++ b/src/roles/harlot.py @@ -142,7 +142,7 @@ def on_get_special(evt, var): def on_del_player(evt, var, user, mainrole, allroles, death_triggers): if "harlot" not in allroles: return - VISITED.pop(user, None) + del VISITED[:user:] PASSED.discard(user) @event_listener("reset") diff --git a/src/roles/hunter.py b/src/roles/hunter.py index ac14711..02c2b49 100644 --- a/src/roles/hunter.py +++ b/src/roles/hunter.py @@ -71,7 +71,7 @@ def hunter_pass(var, wrapper, message): def on_del_player(evt, var, user, mainrole, allroles, death_triggers): HUNTERS.discard(user) PASSED.discard(user) - KILLS.pop(user, None) + del KILLS[:user:] for h, v in list(KILLS.items()): if v is user: HUNTERS.discard(h) @@ -98,8 +98,8 @@ def on_transition_day(evt, var): @event_listener("exchange_roles") def on_exchange(evt, var, actor, target, actor_role, target_role): - KILLS.pop(actor, None) - KILLS.pop(target, None) + del KILLS[:actor:] + del KILLS[:target:] HUNTERS.discard(actor) HUNTERS.discard(target) PASSED.discard(actor)