diff options
Diffstat (limited to 'chatalias.py')
-rw-r--r--[-rwxr-xr-x] | chatalias.py | 37 |
1 files changed, 29 insertions, 8 deletions
diff --git a/chatalias.py b/chatalias.py index 69ac343..dc7db72 100755..100644 --- a/chatalias.py +++ b/chatalias.py @@ -13,9 +13,14 @@ # for "unlimited" setting. from helpers import * +from traceback import format_exc as trace +data = None def safe_open_json(): + global data + if data is not None: + return data data = open_json_file("aliases") if data is None: data = {"gnl":{"max_len":"35","max_entries":"10"}} @@ -25,7 +30,7 @@ def safe_open_json(): @hook.command("alias", usage = "/<command> [to_alias] [alias...]", desc = "Aliases words in chat") def on_alias_command(sender, cmd, label, args): - + if not is_player(sender): msg(sender, "Sorry, Console cannot alias words") return True @@ -53,15 +58,25 @@ def on_alias_command(sender, cmd, label, args): elif len(args) == 1: data = safe_open_json() if args[0] == "*": - del data[str(sender.getUniqueId())] + try: + del data[str(sender.getUniqueId())] + except KeyError: + plugin_header(recipient = sender, name = "Chat Alias") + msg(sender, "No alias data to remove!") + return True save_json_file("aliases", data) plugin_header(recipient = sender, name = "Chat Alias") msg(sender, "ALL alias data successfuly removed!") return True - if data[str(sender.getUniqueId())].pop(args[0], None) is None: + try: + if data[str(sender.getUniqueId())].pop(args[0], None) is None: + plugin_header(recipient = sender, name = "Chat Alias") + msg(sender, "Could not remove: alias not present!") + return True + except KeyError: plugin_header(recipient = sender, name = "Chat Alias") - msg(sender, "Could not remove: alias not present!") + msg(sender, "Could not remove: you do not have any aliases!") return True save_json_file("aliases", data) @@ -95,12 +110,18 @@ def on_alias_command(sender, cmd, label, args): return False - -@hook.event("player.AsyncPlayerChatEvent", "High") +@hook.event("player.AsyncPlayerChatEvent", "high") def on_player_chat(event): + playerid = str(event.getPlayer().getUniqueId()) + data = safe_open_json() + if event.isCancelled(): return - data = safe_open_json() - for alias, value in data[str(event.getPlayer().getUniqueId())].items(): + try: + crashtest = data[playerid].items() + except KeyError: + return + + for alias, value in data[playerid].items(): event.setMessage(event.getMessage().replace(alias, value)) |