diff --git a/src/handler.py b/src/handler.py index 26bc904..04a780a 100644 --- a/src/handler.py +++ b/src/handler.py @@ -13,7 +13,7 @@ import src.settings as var from src import decorators, wolfgame, events, channels, hooks, users, errlog as log, stream_handler as alog from src.messages import messages from src.utilities import reply, get_role, get_templates -from src.functions import get_participants +from src.functions import get_participants, get_all_roles from src.dispatcher import MessageDispatcher from src.decorators import handle_error @@ -69,7 +69,7 @@ def on_privmsg(cli, rawnick, chan, msg, *, notice=False, force_role=None): cmds = [] phase = var.PHASE if user in get_participants(): - roles = {get_role(user.nick)} | set(get_templates(user.nick)) + roles = get_all_roles(user) if force_role is not None: roles &= {force_role} # only fire off role commands for the forced role diff --git a/src/roles/dullahan.py b/src/roles/dullahan.py index 1dcdabf..6860d9f 100644 --- a/src/roles/dullahan.py +++ b/src/roles/dullahan.py @@ -4,7 +4,7 @@ import random from collections import defaultdict, deque from src.utilities import * -from src.functions import get_players, get_all_players, get_target +from src.functions import get_players, get_all_players, get_target, get_main_role from src import users, debuglog, errlog, plog from src.decorators import command, event_listener from src.messages import messages @@ -40,7 +40,7 @@ def dullahan_kill(var, wrapper, message): wrapper.pm(messages["player_kill"].format(orig)) - debuglog("{0} (dullahan) KILL: {1} ({2})".format(wrapper.source, target, get_role(target.nick))) + debuglog("{0} (dullahan) KILL: {1} ({2})".format(wrapper.source, target, get_main_role(target))) chk_nightdone(wrapper.client) @@ -103,7 +103,7 @@ def on_del_player(evt, var, user, mainrole, allroles, death_triggers): channels.Main.send(messages["dullahan_die_success"].format(user, target, an, role)) else: channels.Main.send(messages["dullahan_die_success_noreveal"].format(user, target)) - debuglog("{0} (dullahan) DULLAHAN ASSASSINATE: {1} ({2})".format(user, target, get_role(target.nick))) + debuglog("{0} (dullahan) DULLAHAN ASSASSINATE: {1} ({2})".format(user, target, get_main_role(target))) evt.params.del_player(target, forced_death=True, end_game=False, killer_role="dullahan", deadlist=evt.params.deadlist, original=evt.params.original, ismain=False) evt.data["pl"] = evt.params.refresh_pl(pl) diff --git a/src/roles/hunter.py b/src/roles/hunter.py index 3ec138b..cbfbd90 100644 --- a/src/roles/hunter.py +++ b/src/roles/hunter.py @@ -5,7 +5,7 @@ from collections import defaultdict import src.settings as var from src.utilities import * from src import users, debuglog, errlog, plog -from src.functions import get_players, get_all_players, get_target +from src.functions import get_players, get_all_players, get_target, get_main_role from src.decorators import command, event_listener from src.messages import messages from src.events import Event @@ -42,7 +42,7 @@ def hunter_kill(var, wrapper, message): wrapper.pm(messages["player_kill"].format(orig)) - debuglog("{0} (hunter) KILL: {1} ({2})".format(wrapper.source, target, get_role(target.nick))) + debuglog("{0} (hunter) KILL: {1} ({2})".format(wrapper.source, target, get_main_role(target))) chk_nightdone(wrapper.client) @command("retract", "r", chan=False, pm=True, playing=True, phases=("night",), roles=("hunter",)) diff --git a/src/roles/madscientist.py b/src/roles/madscientist.py index 92ec97f..f6097a5 100644 --- a/src/roles/madscientist.py +++ b/src/roles/madscientist.py @@ -8,7 +8,7 @@ import botconfig import src.settings as var from src.utilities import * from src import channels, users, debuglog, errlog, plog -from src.functions import get_players, get_all_players +from src.functions import get_players, get_all_players, get_main_role from src.decorators import command, event_listener from src.messages import messages from src.events import Event @@ -22,7 +22,7 @@ def _get_targets(var, pl, user): """ for index, player in enumerate(var.ALL_PLAYERS): - if player is user: # FIXME + if player is user: break num_players = len(var.ALL_PLAYERS) @@ -111,7 +111,7 @@ def on_del_player(evt, var, user, mainrole, allroles, death_triggers): else: tmsg = messages["mad_scientist_kill_no_reveal"].format(user, target1, target2) channels.Main.send(tmsg) - debuglog(user.nick, "(mad scientist) KILL: {0} ({1}) - {2} ({3})".format(target1, get_role(target1.nick), target2, get_role(target2.nick))) + debuglog(user.nick, "(mad scientist) KILL: {0} ({1}) - {2} ({3})".format(target1, get_main_role(target1), target2, get_main_role(target2))) # here we DO want to tell that the other one is dying already so chained deaths don't mess things up deadlist1 = evt.params.deadlist[:] deadlist1.append(target2.nick) @@ -128,7 +128,7 @@ def on_del_player(evt, var, user, mainrole, allroles, death_triggers): else: tmsg = messages["mad_scientist_kill_single_no_reveal"].format(user, target1) channels.Main.send(tmsg) - debuglog(user.nick, "(mad scientist) KILL: {0} ({1})".format(target1, get_role(target1.nick))) + debuglog(user.nick, "(mad scientist) KILL: {0} ({1})".format(target1, get_main_role(target1))) evt.params.del_player(target1, forced_death=True, end_game=False, killer_role="mad scientist", deadlist=evt.params.deadlist, original=evt.params.original, ismain=False) pl = evt.params.refresh_pl(pl) else: @@ -140,7 +140,7 @@ def on_del_player(evt, var, user, mainrole, allroles, death_triggers): else: tmsg = messages["mad_scientist_kill_single_no_reveal"].format(user, target2) channels.Main.send(tmsg) - debuglog(user.nick, "(mad scientist) KILL: {0} ({1})".format(target2, get_role(target2.nick))) + debuglog(user.nick, "(mad scientist) KILL: {0} ({1})".format(target2, get_main_role(target2))) evt.params.del_player(target2, forced_death=True, end_game=False, killer_role="mad scientist", deadlist=evt.params.deadlist, original=evt.params.original, ismain=False) pl = evt.params.refresh_pl(pl) else: diff --git a/src/roles/succubus.py b/src/roles/succubus.py index f9f59a3..eb4cdb1 100644 --- a/src/roles/succubus.py +++ b/src/roles/succubus.py @@ -8,7 +8,7 @@ import botconfig import src.settings as var from src.utilities import * from src import channels, users, debuglog, errlog, plog -from src.functions import get_players, get_all_players +from src.functions import get_players, get_all_players, get_main_role from src.decorators import cmd, event_listener from src.messages import messages from src.events import Event @@ -214,7 +214,7 @@ def on_del_player(evt, var, user, mainrole, allroles, death_triggers): # killing off everyone else that is entranced so they don't need to bother dlc = list(evt.params.deadlist) dlc.extend(entranced_alive - {e}) - debuglog("{0} (succubus) SUCCUBUS DEATH KILL: {1} ({2})".format(user, e, get_role(e))) + debuglog("{0} (succubus) SUCCUBUS DEATH KILL: {1} ({2})".format(user, e, get_main_role(e))) evt.params.del_player(e, end_game=False, killer_role="succubus", deadlist=dlc, original=evt.params.original, ismain=False) evt.data["pl"] = evt.params.refresh_pl(evt.data["pl"]) diff --git a/src/wolfgame.py b/src/wolfgame.py index 10f4584..1618450 100644 --- a/src/wolfgame.py +++ b/src/wolfgame.py @@ -1084,7 +1084,7 @@ def fleave(var, wrapper, message): return msg = [messages["fquit_success"].format(wrapper.source, target)] - if get_role(target.nick) != "person" and var.ROLE_REVEAL in ("on", "team"): + if get_main_role(target) != "person" and var.ROLE_REVEAL in ("on", "team"): msg.append(messages["fquit_goodbye"].format(get_reveal_role(target.nick))) if var.PHASE == "join": player_count = len(list_players()) - 1 @@ -3198,7 +3198,7 @@ def leave(var, what, user, why=None): population = " " + messages["new_player_count"].format(lpl) reveal = "" - if get_role(user.nick) == "person" or var.ROLE_REVEAL not in ("on", "team"): + if get_main_role(user) == "person" or var.ROLE_REVEAL not in ("on", "team"): reveal = "_no_reveal" grace_times = {"part": var.PART_GRACE_TIME, "quit": var.QUIT_GRACE_TIME, "account": var.ACC_GRACE_TIME, "leave": 0}