Merge pull request #291 from lykoss/swap-event
Add a new swap_player event
This commit is contained in:
commit
322de008e7
@ -124,7 +124,8 @@
|
||||
"invalid_channel": "You need to be in {0} to use that command.",
|
||||
"swap_notice": "More than one player is logged in to your account. Use '{0}swap <nick>' to swap.",
|
||||
"account_not_playing": "You do not appear to be playing. Make sure you are identified to the same account.",
|
||||
"target_not_playing": "That person is no{0} playing.",
|
||||
"target_not_playing": "That person is not playing.",
|
||||
"target_no_longer_playing": "That person is no longer playing.",
|
||||
"target_not_logged_in": "That person is not logged in to NickServ.",
|
||||
"player_swap": "\u0002{0}\u0002 has swapped places with \u0002{1}\u0002.",
|
||||
"get_pingif": "You will be pinged when there are at least {0} players joined.",
|
||||
|
@ -548,7 +548,7 @@ def replace(var, wrapper, message):
|
||||
if not rest: # bare call
|
||||
target = None
|
||||
|
||||
for user in users.users_(): # FIXME: Backwards-compatible API
|
||||
for user in var.ALL_PLAYERS:
|
||||
if users.equals(user.account, wrapper.source.account):
|
||||
if user is wrapper.source or user.nick not in list_participants(): # FIXME: Need to fix once list_participants() holds User instances
|
||||
continue
|
||||
@ -568,7 +568,11 @@ def replace(var, wrapper, message):
|
||||
target, _ = users.complete_match(rest[0], pl)
|
||||
|
||||
if target is None:
|
||||
wrapper.pm(messages["target_not_playing"].format(" longer" if target in var.DEAD else "t"))
|
||||
wrapper.pm(messages["target_not_playing"])
|
||||
return
|
||||
|
||||
if target not in pl:
|
||||
wrapper.pm(messages["target_no_longer_playing" if target.nick in var.DEAD else "target_not_playing"]) # FIXME: Need to fix once var.DEAD holds User instances
|
||||
return
|
||||
|
||||
if target.account is None:
|
||||
@ -576,6 +580,8 @@ def replace(var, wrapper, message):
|
||||
return
|
||||
|
||||
if users.equals(target.account, wrapper.source.account) and target is not wrapper.source:
|
||||
evt = Event("swap_player", {})
|
||||
evt.dispatch(var, target, wrapper.source)
|
||||
rename_player(var, wrapper.source, target.nick)
|
||||
# Make sure to remove player from var.DISCONNECTED if they were in there
|
||||
if var.PHASE in var.GAME_PHASES:
|
||||
@ -586,7 +592,11 @@ def replace(var, wrapper, message):
|
||||
channels.Main.mode(("-" + mode, target), ("+" + mode, wrapper.source))
|
||||
|
||||
channels.Main.send(messages["player_swap"].format(wrapper.source, target))
|
||||
myrole.caller(wrapper.source.client, wrapper.source.nick, wrapper.target.name, "")
|
||||
myrole.caller(wrapper.source.client, wrapper.source.nick, wrapper.target.name, "") # FIXME: Old API
|
||||
|
||||
@event_listener("swap_player", priority=0)
|
||||
def swap_player(evt, var, old_user, user):
|
||||
var.ALL_PLAYERS[var.ALL_PLAYERS.index(old_user)] = user
|
||||
|
||||
@command("pingif", "pingme", "pingat", "pingpref", pm=True)
|
||||
def altpinger(var, wrapper, message):
|
||||
@ -3016,14 +3026,6 @@ def rename_player(var, user, prefix):
|
||||
event = Event("rename_player", {})
|
||||
event.dispatch(user.client, var, prefix, nick) # FIXME: Need to update all the callbacks
|
||||
|
||||
try:
|
||||
temp = users._get(prefix) # FIXME
|
||||
except KeyError: # dirty hack; this isn't a swap
|
||||
pass
|
||||
else:
|
||||
# ALL_PLAYERS needs to keep its ordering for purposes of mad scientist
|
||||
var.ALL_PLAYERS[var.ALL_PLAYERS.index(temp)] = user
|
||||
|
||||
if user in var.ALL_PLAYERS:
|
||||
try:
|
||||
r = var.ROLES[get_role(prefix)]
|
||||
@ -6561,7 +6563,7 @@ def listroles(cli, nick, chan, rest):
|
||||
reply(cli, nick, chan, " ".join(msg))
|
||||
|
||||
@cmd("myrole", pm=True, phases=("day", "night"))
|
||||
def myrole(cli, nick, chan, rest):
|
||||
def myrole(cli, nick, chan, rest): # FIXME: Need to fix !swap once this gets converted
|
||||
"""Reminds you of your current role."""
|
||||
|
||||
ps = list_participants()
|
||||
|
Loading…
Reference in New Issue
Block a user