diff --git a/src/functions.py b/src/functions.py index 8d1ba0a..e6281c9 100644 --- a/src/functions.py +++ b/src/functions.py @@ -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 diff --git a/src/roles/dullahan.py b/src/roles/dullahan.py index bec9d47..cdbce90 100644 --- a/src/roles/dullahan.py +++ b/src/roles/dullahan.py @@ -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"})) diff --git a/src/roles/hunter.py b/src/roles/hunter.py index 48044ed..cb167f0 100644 --- a/src/roles/hunter.py +++ b/src/roles/hunter.py @@ -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"}))