diff options
author | jomo <github@jomo.tv> | 2014-05-16 23:04:40 +0200 |
---|---|---|
committer | jomo <github@jomo.tv> | 2014-05-16 23:04:40 +0200 |
commit | 9f1ed1fb668f0a60170eac88909bf2b3e69402f8 (patch) | |
tree | 4a82a8a58a1f623ef29af4bc0fdb2c780d4f773c /saylol.py |
first commit via git
Diffstat (limited to 'saylol.py')
-rwxr-xr-x | saylol.py | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/saylol.py b/saylol.py new file mode 100755 index 0000000..ccd9fc9 --- /dev/null +++ b/saylol.py @@ -0,0 +1,91 @@ +import simplejson as json +import org.bukkit as bukkit +from time import time +from helpers import * +from random import randrange + +lol_filename = "plugins/RedstonerUtils.py.dir/files/lol.json" +lols = [] +timeout = 15 +last_msg = 0 + +try: + lols = json.loads(open(lol_filename).read()) +except Exception, e: + error("Failed to load lols: %s" % e) + + + +def save_lols(): + try: + lolfile = open(lol_filename, "w") + lolfile.write(json.dumps(lols)) + lolfile.close() + except Exception, e: + error("Failed to write lols: " + str(e)) + +def add_lol(txt): + lols.append(txt) + save_lols() + +def del_lol(id): + lols.pop(id) + save_lols() + +def print_lol(sender, id): + global last_msg + if time() - last_msg > timeout: + dispname = sender.getDisplayName() if isPlayer(sender) else sender.getName() + broadcast("", "&8[&blol&8] &7%s&8: &e%s" % (dispname, lols[id])) + last_msg = time() + else: + plugHeader(sender, "SayLol") + msg(sender, "&cYou can use SayLol again in &a%s seconds!" % int(timeout + 1 - (time() - last_msg))) + + +@hook.command("lol") +def onCommand(sender, args): + cmd = args[0] if len(args) > 0 else None + if len(args) == 0: + if sender.hasPermission("utils.lol"): + print_lol(sender, randrange(len(lols))) + else: + noperm(sender) + elif cmd == "id": + if sender.hasPermission("utils.lol.id"): + try: + i = int(args[1]) + print_lol(sender, i) + except Exception, e: + plugHeader(sender, "SayLol") + msg(sender, "&cInvalid number '&e%s&c'" % args[1]) + else: + noperm(sender) + elif cmd == "list": + plugHeader(sender, "SayLol") + for i in range(len(lols)): + msg(sender, "&a%s: &e%s" % (str(i).rjust(3), lols[i])) + elif cmd == "add": + if sender.hasPermission("utils.lol.modify"): + plugHeader(sender, "SayLol") + add_lol(" ".join(args[1:])) + msg(sender, "&aNew lol message added!") + else: + noperm(sender) + elif cmd == "del": + if sender.hasPermission("utils.lol.modify"): + plugHeader(sender, "SayLol") + try: + i = int(args[1]) + del_lol(i) + msg(sender, "&aLol message &e#%s&a deleted!" % i) + except Exception, e: + msg(sender, "&cInvalid number '&e%s&c'" % args[1]) + else: + plugHeader(sender, "SayLol") + msg(sender, "&a/lol &eSay random message") + msg(sender, "&a/lol list &eList all messages") + msg(sender, "&a/lol id <id> &eSay specific message") + msg(sender, "&a/lol add <text> &eAdd message") + msg(sender, "&a/lol del <id> &eDelete message") + return True |