summaryrefslogtreecommitdiff
path: root/chatalias.py
diff options
context:
space:
mode:
Diffstat (limited to 'chatalias.py')
-rw-r--r--[-rwxr-xr-x]chatalias.py37
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))