Update !myrole and its event

This commit is contained in:
Vgr E. Barry 2017-09-01 10:10:26 -04:00
parent 07f14689c3
commit d89534f259
7 changed files with 37 additions and 38 deletions

View File

@ -74,8 +74,8 @@ def on_assassinate(evt, cli, var, nick, target, prot):
pm(cli, nick, messages["assassin_fail_blessed"].format(target)) pm(cli, nick, messages["assassin_fail_blessed"].format(target))
@event_listener("myrole") @event_listener("myrole")
def on_myrole(evt, cli, var, nick): def on_myrole(evt, var, user):
if nick in var.ROLES["blessed villager"]: if user.nick in var.ROLES["blessed villager"]:
evt.data["messages"].append(messages["blessed_simple"]) evt.data["messages"].append(messages["blessed_simple"])
# vim: set sw=4 expandtab: # vim: set sw=4 expandtab:

View File

@ -214,10 +214,10 @@ def on_succubus_visit(evt, cli, var, nick, victim):
del KILLS[user] del KILLS[user]
@event_listener("myrole") @event_listener("myrole")
def on_myrole(evt, cli, var, nick): def on_myrole(evt, var, user):
# Remind dullahans of their targets # Remind dullahans of their targets
if nick in var.ROLES["dullahan"]: if user.nick in var.ROLES["dullahan"]:
targets = list(TARGETS[users._get(nick)]) # FIXME targets = list(TARGETS[user])
for target in list(targets): for target in list(targets):
if target.nick in var.DEAD: if target.nick in var.DEAD:
targets.remove(target) targets.remove(target)

View File

@ -162,10 +162,10 @@ def on_transition_night_end(evt, var):
ms.send(messages[to_send].format(target1, target2)) ms.send(messages[to_send].format(target1, target2))
@event_listener("myrole") @event_listener("myrole")
def on_myrole(evt, cli, var, nick): def on_myrole(evt, var, user):
if nick in var.ROLES["mad scientist"]: if user.nick in var.ROLES["mad scientist"]:
pl = list_players() pl = list_players()
target1, target2 = _get_targets(var, pl, nick) target1, target2 = _get_targets(var, pl, user.nick)
evt.data["messages"].append(messages["mad_scientist_myrole_targets"].format(target1, target2)) evt.data["messages"].append(messages["mad_scientist_myrole_targets"].format(target1, target2))
@event_listener("revealroles_role") @event_listener("revealroles_role")

View File

@ -586,10 +586,10 @@ def on_succubus_visit(evt, cli, var, nick, victim):
del SHAMANS[victim] del SHAMANS[victim]
@event_listener("myrole") @event_listener("myrole")
def on_myrole(evt, cli, var, nick): def on_myrole(evt, var, user):
role = evt.data["role"] role = evt.data["role"]
if role in var.TOTEM_ORDER and role != "crazed shaman" and var.PHASE == "night" and nick not in SHAMANS: if role in var.TOTEM_ORDER and role != "crazed shaman" and var.PHASE == "night" and user.nick not in SHAMANS:
evt.data["messages"].append(messages["totem_simple"].format(TOTEMS[nick])) evt.data["messages"].append(messages["totem_simple"].format(TOTEMS[user.nick]))
@event_listener("revealroles_role") @event_listener("revealroles_role")
def on_revealroles(evt, var, wrapper, nickname, role): def on_revealroles(evt, var, wrapper, nickname, role):

View File

@ -217,8 +217,7 @@ def on_transition_night_end(evt, var):
debuglog("GHOST: {0} (target: {1}) - players: {2}".format(v_ghost, who, ", ".join(p.nick for p in pl))) debuglog("GHOST: {0} (target: {1}) - players: {2}".format(v_ghost, who, ", ".join(p.nick for p in pl)))
@event_listener("myrole") @event_listener("myrole")
def on_myrole(evt, cli, var, nick): def on_myrole(evt, var, user):
user = users._get(nick)
if user in GHOSTS: if user in GHOSTS:
evt.prevent_default = True evt.prevent_default = True
if GHOSTS[user][0] != "!": if GHOSTS[user][0] != "!":

View File

@ -77,9 +77,9 @@ def on_exchange(evt, cli, var, actor, nick, actor_role, nick_role):
evt.data["actor_messages"].append(messages["wild_child_idol"].format(IDOLS[actor])) evt.data["actor_messages"].append(messages["wild_child_idol"].format(IDOLS[actor]))
@event_listener("myrole") @event_listener("myrole")
def on_myrole(evt, cli, var, nick): def on_myrole(evt, var, user):
if nick in IDOLS: if user.nick in IDOLS:
evt.data["messages"].append(messages["wild_child_idol"].format(IDOLS[nick])) evt.data["messages"].append(messages["wild_child_idol"].format(IDOLS[user.nick]))
@event_listener("del_player") @event_listener("del_player")
def on_del_player(evt, var, user, mainrole, allroles, death_triggers): def on_del_player(evt, var, user, mainrole, allroles, death_triggers):

View File

@ -49,7 +49,7 @@ import src.settings as var
from src.utilities import * from src.utilities import *
from src import db, events, dispatcher, channels, users, hooks, logger, proxy, debuglog, errlog, plog from src import db, events, dispatcher, channels, users, hooks, logger, proxy, debuglog, errlog, plog
from src.decorators import command, cmd, hook, handle_error, event_listener, COMMANDS from src.decorators import command, cmd, hook, handle_error, event_listener, COMMANDS
from src.functions import get_players, get_participants from src.functions import get_players, get_participants, get_main_role
from src.messages import messages from src.messages import messages
from src.warnings import * from src.warnings import *
from src.context import IRCContext from src.context import IRCContext
@ -6460,34 +6460,34 @@ def listroles(cli, nick, chan, rest):
reply(cli, nick, chan, " ".join(msg)) reply(cli, nick, chan, " ".join(msg))
@cmd("myrole", pm=True, phases=("day", "night")) @command("myrole", pm=True, phases=("day", "night"))
def myrole(cli, nick, chan, rest): # FIXME: Need to fix !swap once this gets converted def myrole(var, wrapper, message): # FIXME: Need to fix !swap once this gets converted
"""Reminds you of your current role.""" """Reminds you of your current role."""
ps = get_participants() ps = get_participants()
if users._get(nick) not in ps: if wrapper.source not in ps:
return return
role = get_role(nick) role = get_main_role(wrapper.source)
if role in var.HIDDEN_VILLAGERS: if role in var.HIDDEN_VILLAGERS:
role = "villager" role = "villager"
elif role in var.HIDDEN_ROLES: elif role in var.HIDDEN_ROLES:
role = var.DEFAULT_ROLE role = var.DEFAULT_ROLE
evt = Event("myrole", {"role": role, "messages": []}) evt = Event("myrole", {"role": role, "messages": []})
if not evt.dispatch(cli, var, nick): if not evt.dispatch(var, wrapper.source):
return return
role = evt.data["role"] role = evt.data["role"]
an = "n" if role.startswith(("a", "e", "i", "o", "u")) else "" an = "n" if role.startswith(("a", "e", "i", "o", "u")) else ""
pm(cli, nick, messages["show_role"].format(an, role)) wrapper.pm(messages["show_role"].format(an, role))
for msg in evt.data["messages"]: for msg in evt.data["messages"]:
pm(cli, nick, msg) wrapper.pm(msg)
# Remind clone who they have cloned # Remind clone who they have cloned
if role == "clone" and nick in var.CLONED: if role == "clone" and wrapper.source.nick in var.CLONED:
pm(cli, nick, messages["clone_target"].format(var.CLONED[nick])) wrapper.pm(messages["clone_target"].format(var.CLONED[wrapper.source.nick]))
# Give minion the wolf list they would have recieved night one # Give minion the wolf list they would have recieved night one
if role == "minion": if role == "minion":
@ -6495,31 +6495,31 @@ def myrole(cli, nick, chan, rest): # FIXME: Need to fix !swap once this gets con
for wolfrole in var.WOLF_ROLES: for wolfrole in var.WOLF_ROLES:
for player in var.ORIGINAL_ROLES[wolfrole]: for player in var.ORIGINAL_ROLES[wolfrole]:
wolves.append(player) wolves.append(player)
pm(cli, nick, messages["original_wolves"] + ", ".join(wolves)) wrapper.pm(messages["original_wolves"] + ", ".join(wolves))
# Remind turncoats of their side # Remind turncoats of their side
if role == "turncoat": if role == "turncoat":
pm(cli, nick, messages["turncoat_side"].format(var.TURNCOATS.get(nick, "none")[0])) wrapper.pm(messages["turncoat_side"].format(var.TURNCOATS.get(wrapper.source.nick, "none")[0]))
# Check for gun/bullets # Check for gun/bullets
if nick not in var.ROLES["amnesiac"] and nick in var.GUNNERS and var.GUNNERS[nick]: if wrapper.source.nick not in var.ROLES["amnesiac"] and wrapper.source.nick in var.GUNNERS and var.GUNNERS[wrapper.source.nick]:
role = "gunner" role = "gunner"
if nick in var.ROLES["sharpshooter"]: if wrapper.source.nick in var.ROLES["sharpshooter"]:
role = "sharpshooter" role = "sharpshooter"
pm(cli, nick, messages["gunner_simple"].format(role, var.GUNNERS[nick], "" if var.GUNNERS[nick] == 1 else "s")) wrapper.pm(messages["gunner_simple"].format(role, var.GUNNERS[wrapper.source.nick], "" if var.GUNNERS[wrapper.source.nick] == 1 else "s"))
# Check assassin # Check assassin
if nick in var.ROLES["assassin"] and nick not in var.ROLES["amnesiac"]: if wrapper.source.nick in var.ROLES["assassin"] and wrapper.source.nick not in var.ROLES["amnesiac"]:
pm(cli, nick, messages["assassin_role_info"].format(messages["assassin_targeting"].format(var.TARGETED[nick]) if nick in var.TARGETED else "")) wrapper.pm(messages["assassin_role_info"].format(messages["assassin_targeting"].format(var.TARGETED[wrapper.source.nick]) if wrapper.source.nick in var.TARGETED else ""))
# Remind prophet of their role, in sleepy mode only where it is hacked into a template instead of a role # Remind prophet of their role, in sleepy mode only where it is hacked into a template instead of a role
if "prophet" in var.TEMPLATE_RESTRICTIONS and nick in var.ROLES["prophet"]: if "prophet" in var.TEMPLATE_RESTRICTIONS and wrapper.source.nick in var.ROLES["prophet"]:
pm(cli, nick, messages["prophet_simple"]) wrapper.pm(messages["prophet_simple"])
# Remind lovers of each other # Remind lovers of each other
if users._get(nick) in ps and nick in var.LOVERS: if wrapper.source in ps and wrapper.source.nick in var.LOVERS:
message = messages["matched_info"] message = messages["matched_info"]
lovers = sorted(list(set(var.LOVERS[nick]))) lovers = sorted(list(set(var.LOVERS[wrapper.source.nick])))
if len(lovers) == 1: if len(lovers) == 1:
message += lovers[0] message += lovers[0]
elif len(lovers) == 2: elif len(lovers) == 2:
@ -6527,7 +6527,7 @@ def myrole(cli, nick, chan, rest): # FIXME: Need to fix !swap once this gets con
else: else:
message += ", ".join(lovers[:-1]) + ", and " + lovers[-1] message += ", ".join(lovers[:-1]) + ", and " + lovers[-1]
message += "." message += "."
pm(cli, nick, message) wrapper.pm(message)
@command("aftergame", "faftergame", flag="D", pm=True) @command("aftergame", "faftergame", flag="D", pm=True)
def aftergame(var, wrapper, message): def aftergame(var, wrapper, message):