This repository has been archived on 2024-08-27. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
redstoner-utils/saylol.py
Logan Fick e5e1343ace Make help dialogue only show commands you have perms to
Now if you get to the page explaining all the commands and what they do, it will only display each command you have the permissions too.
2015-08-13 21:20:02 -04:00

109 lines
3.1 KiB
Python

from time import time
from helpers import *
from random import randrange
lols = open_json_file("lol", [])
timeout = 15
last_msg = 0
def save_lols():
save_json_file("lol", lols)
def add_lol(txt):
lols.append(txt)
save_lols()
def del_lol(lid):
lols.pop(lid)
save_lols()
def print_lol(sender, lid):
global last_msg
if time() - last_msg > timeout:
if len(lols) > lid:
dispname = sender.getDisplayName() if is_player(sender) else sender.getName()
broadcast(None, "&8[&blol&8] &7%s&8: &e%s" % (dispname, lols[lid]))
last_msg = time()
else:
msg(sender, "&cInvalid id")
else:
msg(sender, "&cYou can use SayLol again in &a%s seconds!" % int(timeout + 1 - (time() - last_msg)))
def search_lols(sender, keyword):
if not keyword:
msg(sender, "&cPlease provide a keyword to search for!")
return
keyword = keyword.lower()
msg(sender, "&aLols containing '&6%s&a':" % keyword)
for i, lol in enumerate(lols):
if keyword in lol.lower():
msg(sender, "&a%s: &e%s" % (str(i).rjust(3), lol))
msg(sender, "") # empty line showing end of list
@hook.command("lol")
def on_lol_command(sender, command, label, args):
plugin_header(sender, "SayLol")
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 ValueError:
msg(sender, "&cInvalid number '&e%s&c'" % args[1])
else:
noperm(sender)
elif cmd == "list":
for i in range(len(lols)):
msg(sender, "&a%s: &e%s" % (str(i).rjust(3), lols[i]))
elif cmd == "search":
if sender.hasPermission("utils.lol.search"):
search_lols(sender, " ".join(args[1:]))
else:
noperm(sender)
elif cmd == "add":
if sender.hasPermission("utils.lol.modify"):
add_lol(" ".join(args[1:]))
msg(sender, "&aNew lol message added!")
else:
noperm(sender)
elif cmd == "del":
if sender.hasPermission("utils.lol.modify"):
try:
i = int(args[1])
del_lol(i)
msg(sender, "&aLol message &e#%s&a deleted!" % i)
except ValueError:
msg(sender, "&cInvalid number '&e%s&c'" % args[1])
else:
if sender.hasPermission("utils.lol"):
msg(sender, "&a/lol &eSay random message")
msg(sender, "&a/lol list &eList all messages")
if sender.hasPermission("utils.lol.id"):
msg(sender, "&a/lol id <id> &eSay specific message")
if sender.hasPermission("utils.lol.modify"):
msg(sender, "&a/lol add <text> &eAdd message")
msg(sender, "&a/lol del <id> &eDelete message")
else:
noperm(sender)
return True