diff options
author | PixelSergey <sergey.ichtchenko@gmail.com> | 2015-10-31 19:10:22 +0200 |
---|---|---|
committer | PixelSergey <sergey.ichtchenko@gmail.com> | 2015-10-31 19:10:22 +0200 |
commit | 9b47599d063c7c621115cdb0fc72146012537e09 (patch) | |
tree | 8fb9d7074ddd7c23296ddb7c3fbef475443c681a | |
parent | b369ea75575c5cb387378e8d3a87f49372c0594a (diff) |
Fixed ugly stacktraces. And the associated bugs.
-rwxr-xr-x | chatalias.py | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/chatalias.py b/chatalias.py index 69ac343..e4f72d7 100755 --- a/chatalias.py +++ b/chatalias.py @@ -13,6 +13,7 @@ # for "unlimited" setting. from helpers import * +from traceback import format_exc as trace def safe_open_json(): @@ -25,7 +26,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 +54,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 +106,18 @@ def on_alias_command(sender, cmd, label, args): return False - @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)) |