summaryrefslogtreecommitdiff
path: root/mentio.py
diff options
context:
space:
mode:
authorLouis Vogt <l.uisv.gt@icloud.com>2014-07-14 16:22:49 +0200
committerLouis Vogt <l.uisv.gt@icloud.com>2014-07-14 16:22:49 +0200
commit9bbd6bba2743f29213ec9e663b52eb52b7aa6c7d (patch)
tree5d490850c920c61867d73f449c1d6ed3a7fbe8a9 /mentio.py
parent41e1d3c65e965a8e4087027445023c34cd57acfe (diff)
Added WIP custom words
Diffstat (limited to 'mentio.py')
-rw-r--r--mentio.py73
1 files changed, 71 insertions, 2 deletions
diff --git a/mentio.py b/mentio.py
index 02e49a3..4d1e624 100644
--- a/mentio.py
+++ b/mentio.py
@@ -1,11 +1,19 @@
-#pylint: disable=F0401
+import simplejson as json
from helpers import *
from re import compile as reg_compile
from traceback import format_exc as print_traceback
+mentio_filename = "plugins/redstoner-utils.py.dir/files/mentio.json"
+mentions = {}
+max_amount = 3
arrow = colorify(u"&r&7\u2192&r")
regex = reg_compile(u"\u00A7[\\da-fk-or]")
+try:
+ mentions = json.loads(open(mentio_filename).read())
+except Exception, e:
+ error("Failed to load mentions: %s" % e)
+
@hook.event("player.AsyncPlayerChatEvent", "high")
def onChat(event):
@@ -35,4 +43,65 @@ def onChat(event):
recipient.playSound(recipient.getLocation(), "mob.chicken.plop", 1, 0)
except:
error("Failed to handle PlayerChatEvent:")
- error(print_traceback()) \ No newline at end of file
+ error(print_traceback())
+
+@hook.command("listen")
+def onListenCommand(sender, args):
+ try:
+ currWords = []
+ if str(sender.getUniqueId()) in mentions.keys():
+ currWords = mentions[str(sender.getUniqueId())]
+
+ # /listen add <word>
+ if len(args) == 2 and args[0].lower() == "add":
+
+ if len(currWords) >= max_amount:
+ msg(sender, "&cYou are already listening for %s words! Try &6/listen del <word>" % max_amount)
+ return True
+ if args[1].lower() in currWords:
+ msg(sender, "&cYou are already listening for this word! Try &6/listen list")
+ return True
+ if args[1].lower() is sender.getName():
+ msg(sender, "&cYou are always listening for your full ingame name by default")
+ currWords.append(args[1].lower())
+ mentions[str(sender.getUniqueId())] = currWords
+ msg(sender, "&aYou are now listening for '&2"+args[1].lower()+"'!")
+ saveMentions()
+ return True
+ # /listen del <word>
+ elif len(args) == 2 and args[0].lower() == "del":
+ if len(currWords) <= 0:
+ msg(sender, "&cYou are currently listening for no words! Try &6/listen add <word>")
+ return True
+ success = False
+ for word in currWords[:]:
+ if word.lower() == args[1].lower():
+ currWords.remove(word.lower())
+ mentions[str(sender.getUniqueId())] = currWords
+ success = True
+ if success == True:
+ saveMentions()
+ msg(sender, "&eYou are no longer listening for '&2"+args[1].lower()+"&e'!")
+ else:
+ msg(sender, "&cWe can't remove something that doesn't exist! Try &6/listen list")
+ return True
+
+ # /listen list
+ elif len(args) == 1 and args[0].lower() == "list":
+ msg(sender, "&6Words you're listening for:")
+ for word in currWords:
+ msg(sender, "&c- &3"+word)
+ else:
+ msg(sender, "&6/listen add <word>")
+ msg(sender, "&6/listen del <word>")
+ msg(sender, "&6/listen list")
+ except Exception, e:
+ error(e)
+
+def saveMentions():
+ try:
+ mentio_file = open(mentio_filename, "w")
+ mentio_file.write(json.dumps(mentions))
+ mentio_file.close()
+ except Exception, e:
+ error("Failed to write mentions: " + str(e))