Don't return self in get_target if allow_self is False
This was put in to allow for custom messages if one couldn't target themselves. As such, an extra kwarg was added to pass in a custom message in such an event. It now returns None if they targeted themselves so the caller can fail gracefully.
This commit is contained in:
parent
40b2c345dc
commit
5cc45eda6d
@ -37,7 +37,7 @@ def get_participants():
|
||||
evt.dispatch(var)
|
||||
return evt.data["players"]
|
||||
|
||||
def get_target(var, wrapper, message, *, allow_self=False, allow_bot=False):
|
||||
def get_target(var, wrapper, message, *, allow_self=False, allow_bot=False, not_self_message=None):
|
||||
if not message:
|
||||
wrapper.pm(messages["not_enough_parameters"])
|
||||
return
|
||||
@ -52,7 +52,8 @@ def get_target(var, wrapper, message, *, allow_self=False, allow_bot=False):
|
||||
match, count = users.complete_match(message, players)
|
||||
if match is None:
|
||||
if not count and users.lower(wrapper.source.nick).startswith(users.lower(message)):
|
||||
return wrapper.source
|
||||
wrapper.pm(messages[not_self_message or "no_target_self"])
|
||||
return
|
||||
wrapper.pm(messages["not_playing"].format(message))
|
||||
return
|
||||
|
||||
|
@ -21,14 +21,10 @@ def dullahan_kill(var, wrapper, message):
|
||||
wrapper.pm(messages["dullahan_targets_dead"])
|
||||
return
|
||||
|
||||
target = get_target(var, wrapper, re.split(" +", message)[0])
|
||||
target = get_target(var, wrapper, re.split(" +", message)[0], not_self_message="no_suicide")
|
||||
if not target:
|
||||
return
|
||||
|
||||
if target is wrapper.source:
|
||||
wrapper.pm(messages["no_suicide"])
|
||||
return
|
||||
|
||||
orig = target
|
||||
evt = Event("targeted_command", {"target": target.nick, "misdirection": True, "exchange": True})
|
||||
evt.dispatch(wrapper.client, var, "kill", wrapper.source.nick, target.nick, frozenset({"detrimental"}))
|
||||
|
@ -20,14 +20,10 @@ def hunter_kill(var, wrapper, message):
|
||||
if wrapper.source in HUNTERS and wrapper.source not in KILLS:
|
||||
wrapper.pm(messages["hunter_already_killed"])
|
||||
return
|
||||
target = get_target(var, wrapper, re.split(" +", message)[0])
|
||||
target = get_target(var, wrapper, re.split(" +", message)[0], not_self_message="no_suicide")
|
||||
if not target:
|
||||
return
|
||||
|
||||
if wrapper.source is target:
|
||||
wrapper.pm(messages["no_suicide"])
|
||||
return
|
||||
|
||||
orig = target
|
||||
evt = Event("targeted_command", {"target": target.nick, "misdirection": True, "exchange": True})
|
||||
evt.dispatch(wrapper.client, var, "kill", wrapper.source.nick, target.nick, frozenset({"detrimental"}))
|
||||
|
Loading…
x
Reference in New Issue
Block a user