diff options
-rw-r--r-- | adminchat.py | 6 | ||||
-rw-r--r-- | chatgroups.py | 17 | ||||
-rw-r--r-- | helpers.py | 35 | ||||
-rw-r--r-- | lagchunks.py | 3 | ||||
-rw-r--r-- | main.py | 249 | ||||
-rw-r--r-- | misc.py | 237 | ||||
-rw-r--r-- | mysqlhack.py | 3 | ||||
-rw-r--r-- | reports.py | 16 | ||||
-rw-r--r-- | saylol.py | 20 | ||||
-rw-r--r-- | skullclick.py | 3 | ||||
-rw-r--r-- | tilehelper.py | 2 | ||||
-rw-r--r-- | webtoken.py | 38 |
12 files changed, 316 insertions, 313 deletions
diff --git a/adminchat.py b/adminchat.py index 74e531e..13a4003 100644 --- a/adminchat.py +++ b/adminchat.py @@ -1,5 +1,5 @@ +#pylint: disable=F0401 from helpers import * -import org.bukkit as bukkit ac_permission = "utils.ac" ac_key = "," @@ -17,7 +17,7 @@ def adminchat(sender, msg): # ac toggle @hook.command("act") -def onCommand(sender,args): +def onActCommand(sender, args): if sender.hasPermission(ac_permission): p = sender.getName() if p in ac_toggle_list: @@ -32,7 +32,7 @@ def onCommand(sender,args): @hook.command("ac") -def onCommand(sender, args): +def onAcCommand(sender, args): if sender.hasPermission(ac_permission): if not checkargs(sender, args, 1, -1): return True diff --git a/chatgroups.py b/chatgroups.py index dd8a30d..e354afb 100644 --- a/chatgroups.py +++ b/chatgroups.py @@ -1,6 +1,6 @@ +#pylint: disable=F0401 from helpers import * import simplejson as json -import org.bukkit as bukkit chatgroups_filename = "plugins/redstoner-utils.py.dir/files/chatgroups.json" groups = {} @@ -13,7 +13,7 @@ except Exception, e: error("Failed to load chatgroups: %s" % e) @hook.command("chatgroup") -def onCommand(sender, args): +def onChatgroupCommand(sender, args): try: plugHeader(sender, "ChatGroups") if len(args) == 1 and args[0] == "leave": @@ -30,7 +30,8 @@ def onCommand(sender, args): msg(sender, "&aCurrent chatgroup: %s" % group) users = [] for user, ugroup in groups.iteritems(): - if ugroup == group: users += [user] + if ugroup == group: + users += [user] msg(sender, "&aUsers in this group:") msg(sender, "&a%s" % ", ".join(users)) else: @@ -49,7 +50,7 @@ def onCommand(sender, args): error(e) @hook.command("cgt") -def onCommand(sender,args): +def onCgtCommand(sender, args): p = sender.getName() if p in cg_toggle_list: cg_toggle_list.remove(p) @@ -86,11 +87,11 @@ def saveGroups(): @hook.event("player.PlayerChatEvent", "normal") def onChat(event): sender = event.getPlayer() - msg = event.getMessage() + msge = event.getMessage() if not event.isCancelled(): - if msg[:len(cg_key)] == cg_key and sender.getName() in groups.keys(): - groupchat(sender, msg[1:]) + if msge[:len(cg_key)] == cg_key and sender.getName() in groups.keys(): + groupchat(sender, msge[1:]) event.setCancelled(True) elif sender.getName() in cg_toggle_list: - groupchat(sender, msg) + groupchat(sender, msge) event.setCancelled(True) @@ -1,10 +1,10 @@ +#pylint: disable=F0401 from re import sub import org.bukkit as bukkit import org.bukkit.Location as Location import org.bukkit.entity.Player as Player import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause as TeleportCause -import org.bukkit.block as block -from java.util.logging import Level +import org.bukkit.block as bblock server = bukkit.Bukkit.getServer() @@ -14,7 +14,7 @@ def log(text): def error(text): server.getLogger().severe("[RedstonerUtils] %s" % text) -def msg(player, text, usecolor=True, basecolor=None): +def msg(player, text, usecolor = True, basecolor = None): if player and (player == server.getConsoleSender() or player.getPlayer()): #getPlayer() returns None when offline if basecolor: player.sendMessage(colorify("&%s" % basecolor) + (colorify(text) if usecolor else text)) @@ -24,19 +24,16 @@ def msg(player, text, usecolor=True, basecolor=None): # better than bukkit's broadcast. # bukkit only works with permissibles that are subscribed to perm def broadcast(perm, text): - try: - text = colorify(text) - for recipient in server.getOnlinePlayers().tolist() + [server.getConsoleSender()]: - (not perm or recipient.hasPermission(perm)) and msg(recipient, text) - except Exception, e: - error(e) + text = colorify(text) + for recipient in server.getOnlinePlayers().tolist() + [server.getConsoleSender()]: + (not perm or recipient.hasPermission(perm)) and msg(recipient, text) def colorify(text): - return sub("&(?=[?\da-fk-or])", u"\u00A7", "%s" % text) + return sub("&(?=[?\\da-fk-or])", u"\u00A7", "%s" % text) -def safetp(player, world, x, y, z, yaw=0, pitch=0): +def safetp(player, world, x, y, z, yaw = 0, pitch = 0): tpblock = Location(world, x, y, z).getBlock() - if (tpblock.isEmpty() and tpblock.getRelative(block.BlockFace.UP).isEmpty()) or y > 255: + if (tpblock.isEmpty() and tpblock.getRelative(bblock.BlockFace.UP).isEmpty()) or y > 255: player.teleport(Location(world, x+0.5, y, z+0.5, yaw, pitch), TeleportCause.COMMAND) else: safetp(player, world, x, y+1, z, yaw, pitch) @@ -53,16 +50,16 @@ def runas(player, cmd): def isPlayer(sender): return (isinstance(sender, Player)) -def checkargs(sender, args, min, max): - if not (len(args) >= min and (max < 0 or len(args) <= max)): - if min == max: - msg(sender, "&cNeeds " + str(min) + " arguments!") +def checkargs(sender, args, amin, amax): + if not (len(args) >= amin and (amax < 0 or len(args) <= amax)): + if amin == amax: + msg(sender, "&cNeeds " + str(amin) + " arguments!") return False - elif max < 0: - msg(sender, "&cNeeds at least " + str(min) + " arguments!") + elif amax < 0: + msg(sender, "&cNeeds at least " + str(amin) + " arguments!") return False else: - msg(sender, "&cNeeds " + str(min) + " to " + str(max) + " arguments!") + msg(sender, "&cNeeds " + str(amin) + " to " + str(amax) + " arguments!") return False return True diff --git a/lagchunks.py b/lagchunks.py index 9d1f44e..4bec197 100644 --- a/lagchunks.py +++ b/lagchunks.py @@ -1,3 +1,4 @@ +#pylint: disable=F0401 import org.bukkit as bukkit from helpers import * @@ -35,7 +36,7 @@ def tpChunk(sender, id): msg(sender, "&aTeleported to &b%s&a, &b%s&a in &7%s&a with &b%s&a entities nearby." % (chunk[1], chunk[3], chunk[0].getName(), chunk[4])) @hook.command("lagchunks") -def onCommand(sender, args): +def onLagchunksCommand(sender, args): try: if sender.hasPermission("utils.lagchunks"): plugHeader(sender, "Lagchunks") @@ -1,5 +1,5 @@ -__plugin_name__ = "RedstonerUtils" -__plugin_version__ = "3.0" +__plugin_name__ = "RedstonerUtils" +__plugin_version__ = "3.0" __plugin_mainclass__ = "foobar" # damn pythonloader changed the PATH @@ -7,261 +7,28 @@ import sys sys.path += ['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/pymodules/python2.7', '/usr/lib/pyshared/python2.7'] try: - from helpers import * + from helpers import log, error except Exception, e: print("[RedstonerUtils] ERROR: Failed to import helpers: %s" % e) log("Loading RedstonerUtils...") # Import all modules -modules = ["adminchat", "lagchunks", "reports", "chatgroups", "webtoken", "saylol", "skullclick", "tilehelper"] +modules = ["misc", "adminchat", "lagchunks", "reports", "chatgroups", "webtoken", "saylol", "skullclick", "tilehelper"] +mod = {} for module in modules: try: - __import__(module) + mod[module] = __import__(module) log("Module %s loaded." % module) except Exception, e: error("Failed to import module %s: '%s'" % (module, e)) -import thread -import org.bukkit.entity.Player as Player - - @hook.enable def onEnable(): log("RedstonerUtils enabled!") @hook.disable def onDisable(): - reports.stopChecking() - log("RedstonerUtils disabled!") - - - -# warp aliases - -@hook.command("spawn") -def onCommand(sender, args): - warp(sender, args, "spawn") - return True - -@hook.command("cr") -def onCommand(sender, args): - warp(sender, args, "cr") - return True - -@hook.command("tr") -def onCommand(sender, args): - warp(sender, args, "tr") - return True - -@hook.command("faq") -def onCommand(sender, args): - warp(sender, args, "faq") - return True - -# misc - -@hook.event("player.PlayerJoinEvent", "monitor") -def onJoin(event): - player = event.getPlayer() - for item in player.getInventory(): - if (item != None and item.getTypeId() == 175 and item.getDurability() > 5): - item.setDurability(0) - log("&cPlayer '%s' had 175:6 or higher in his inventory! Replaced with 175:0" % player.getName()) - msg(player, " &a----------------------------------------------------") - msg(player, " &4&lWARNING: &cYou had 175:7 (invalid flower) in your inventory.") - msg(player, " &cThis crashes your client. We have replaced it with 175:0.") - msg(player, " &a----------------------------------------------------") - - if not server.getOfflinePlayer(player.getName()).hasPlayedBefore(): - broadcast("utils.greet_new", "") - broadcast("utils.greet_new", "&a&lPlease welcome &f" + player.getDisplayName() + " &a<o Redstoner!") - broadcast("utils.greet_new", "") - - # clear out some eventual crap before - msg(player, " \n \n \n \n \n \n \n \n \n \n \n \n ") - msg(player, " &4Welcome to the Redstoner Server!") - msg(player, " &6please make sure to read the info here:") - msg(player, " &6/The FAQ at /spawn") - msg(player, " &6/rules") - msg(player, " &6/ranks") - msg(player, " &6thank you and happy playing ;)") - msg(player, " \n ") - - -def evalThread(foo, sender, code): - try: - msg(sender, "%s" % unicode(eval(code)), False, "a") - except Exception, e: - msg(sender, "%s: %s" % (e.__class__.__name__, e), False, "c") - thread.exit() - -@hook.command("pyeval") -def onCommand(sender, args): - if sender.hasPermission("utils.pyeval"): - if not checkargs(sender, args, 1, -1): - return True - msg(sender, "%s" % " ".join(args), False, "e") - try: - thread.start_new_thread(evalThread, ("foo", sender, " ".join(args))) - except Exception, e: - msg(sender, "&cInternal error: %s" % e) - else: - noperm(sender) - return True - -@hook.command("sudo") -def onCommand(sender, args): - if sender.hasPermission("utils.sudo"): - plugHeader(sender, "Sudo") - if not checkargs(sender, args, 2, -1): - return True - target = args[0] - - cmd = " ".join(args[1:]) - msg(sender, "Running '&e%s&r' as &3%s" % (cmd, target)) - if cmd[0] == "/": - cmd = cmd[1:] - if target.lower() == "server" or target.lower() == "console": - runas(server.getConsoleSender(), cmd) - elif server.getPlayer(target): - runas(server.getPlayer(target), cmd) - else: - msg(sender, "&cPlayer %s not found!" % target) - else: - if target.lower() == "server" or target.lower() == "console": - runas(server.getConsoleSender(), "say %s" % cmd) - elif server.getPlayer(target): - server.getPlayer(target).chat(cmd) - else: - msg(sender, "&cPlayer %s not found!" % target) - else: - noperm(sender) - return True - - - - - - - - - - -# text things - -@hook.command("rules") -def onCommand(sender, args): - if not checkargs(sender, args, 0, 0): - return True - arrow = u"\u2192" - plugHeader(sender, "Redstoner rules") - msg(sender, "&31 &7" + arrow + " &bMake use of common sense and respect.") - msg(sender, "&32 &7" + arrow + " &bDo NOT ask for promotion.") - msg(sender, "&33 &7" + arrow + " &bDo NOT use cheats in Survival worlds.") - msg(sender, "&34 &7" + arrow + " &bDo NOT spam entities or leave clocks running.") - msg(sender, "&35 &7" + arrow + " &bSwearing is okay, offending is NOT.") - msg(sender, "&36 &7" + arrow + " &bDo NOT build huge walls around your plot.") - msg(sender, "&37 &7" + arrow + " &bListen to the admins and mods, even if it is not in the rules.") - msg(sender, "&38 &7" + arrow + " &bOnly english in public chat.") - msg(sender, "&39 &7" + arrow + " &bEveryone can get punished, even admins.") - msg(sender, "&310 &7" + arrow + " &bSame rules for everyone.") - msg(sender, "&311 &7" + arrow + " &bNO OP items.") - msg(sender, "&312 &7" + arrow + " &bDo NOT trap other players.") - return True - - -@hook.command("history") -def onCOmmand(sender, args): - if not checkargs(sender, args, 0, 0): - return True - plugHeader(sender, "Redstoner history") - msg(sender, "") - msg(sender, " &2First, oliverissocool1 owned redstoner.com plus the server which usually had 10-15 players on.") - msg(sender, "") - msg(sender, " &2Oliver became lazy and thus moved ownership to oleerik, who was another admin there.") - msg(sender, "") - msg(sender, " &2Dico joined the server and later he became a moderator.") - msg(sender, "") - msg(sender, " &2But then oleerik also became lazy, lost interest and shut down the server.") - msg(sender, "") - msg(sender, " &2Some time later he offered dico to use the server and he was - of course - interested in it.") - msg(sender, "") - msg(sender, " &2The server did not have the old worlds and configuration anymore and it was down for a good while, so it was like a complete new server.") - msg(sender, "") - msg(sender, " &2He invited some friends to help him set up the server before opening it to the public (as his 'fan server').") - msg(sender, "") - msg(sender, " &2Redstone Sheep was one of these friends and made the website, he happened to become the guy who maintains the whole server.") - msg(sender, "") - msg(sender, " &2The server somtimes crashed or lost it's connection and we were not too happy plus oleerik was always paying for it, without using it himself.") - msg(sender, "") - msg(sender, " &2PanFritz first helped out by donating and then offered to host a physical server.") - msg(sender, "") - msg(sender, " &2We discussed a lot and moved everything, it worked very well.") - msg(sender, "") - msg(sender, " &2A month or two later, a new server was bought from donations and it took some time until the new machine was ready, but the move went quick and without much downtime.") - msg(sender, "") - msg(sender, " &2Another couple months later, the server underwent many major changes, this update was known as Redstoner 2.0 and vastly improved almost every aspect of the server.") - msg(sender, "") - - msg(sender, " &2That's our story for now.") - return True - - -@hook.command("nick") -def onCommand(sender, args): - plugHeader(sender, "Nicknames") - msg(sender, "&31. &aYou need to be Donor or Trusted. &8&o(See /ranks)") - msg(sender, "&32. &aHas to begin with &nat least&3&o " + sender.getName()[:3] + "&a.") - msg(sender, "&33. &aMore characters are required when other players") - msg(sender, "&a begin with the same 3 letters.") - msg(sender, "&34. &aIt must not be longer than your name.") - msg(sender, "&a (e.g. No addons like '&3" + sender.getName() + "TheCoolOne&a'.)") - msg(sender, "&6Ask any staff to get your nickname. Requests are ignored when requirements are not covered. Be patient.") - return True - - -@hook.command("ranks") -def onCommand(sender, args): - if not checkargs(sender, args, 0, 0): - return True - plugHeader(sender, "Rank colours") - msg(sender, " &7Guest") - msg(sender, " &fMember") - msg(sender, " &aBuilder") - msg(sender, " &3Trusted") - msg(sender, " &cModerator") - msg(sender, " &4Admin") - plugHeader(sender, "Rank info") - msg(sender, " &oitalic &rnames are nicks. use &a/realname <nick>&r to check") - msg(sender, " &eDonator&r rank has <name> &e$&r") - msg(sender, " &eDonator+&r rank has <name> &e&l$&r") - msg(sender, " To get the &e$&r, see &a/donate&r for more info") - msg(sender, "") - return True - - -@hook.command("donate") -def onCommand(sender, args): - if not checkargs(sender, args, 0, 0): - return True - msg(sender, "") - plugHeader(sender, "Donations") - msg(sender, " &aWant to donate? Awesome!") - msg(sender, " &6all info is at &nredstoner.com/donate&r") - msg(sender, "") - return True - - -# debug and logging - -@hook.command("pluginversions") -def onCommand(sender, args): - plugHeader(sender, "Plugin versions") - plugins = server.getPluginManager().getPlugins().tolist() - plugins.sort(key=lambda pl: pl.getName()) - msg(sender, "&3Listing all " + str(len(plugins)) + " plugins and their version:") - for plugin in plugins: - msg(sender, "&6" + plugin.getName() + "&r: &e" + plugin.getDescription().getVersion()) - return True + mod["reports"].stopChecking() + log("RedstonerUtils disabled!")
\ No newline at end of file @@ -0,0 +1,237 @@ +from helpers import * +import thread + + +# +# Welcome new players +# + +@hook.event("player.PlayerJoinEvent", "monitor") +def onJoin(event): + player = event.getPlayer() + for item in player.getInventory(): + if (item != None and item.getTypeId() == 175 and item.getDurability() > 5): + item.setDurability(0) + log("&cPlayer '%s' had 175:6 or higher in his inventory! Replaced with 175:0" % player.getName()) + msg(player, " &a----------------------------------------------------") + msg(player, " &4&lWARNING: &cYou had 175:7 (invalid flower) in your inventory.") + msg(player, " &cThis crashes your client. We have replaced it with 175:0.") + msg(player, " &a----------------------------------------------------") + + if not server.getOfflinePlayer(player.getName()).hasPlayedBefore(): + broadcast("utils.greet_new", "") + broadcast("utils.greet_new", "&a&lPlease welcome &f" + player.getDisplayName() + " &a<o Redstoner!") + broadcast("utils.greet_new", "") + + # clear out some eventual crap before + msg(player, " \n \n \n \n \n \n \n \n \n \n \n \n ") + msg(player, " &4Welcome to the Redstoner Server!") + msg(player, " &6please make sure to read the info here:") + msg(player, " &6/The FAQ at /spawn") + msg(player, " &6/rules") + msg(player, " &6/ranks") + msg(player, " &6thank you and happy playing ;)") + msg(player, " \n ") + + + +# +# /pyeval - run python ingame +# + +def evalThread(sender, code): + try: + msg(sender, "%s" % unicode(eval(code)), False, "a") + except Exception, e: + msg(sender, "%s: %s" % (e.__class__.__name__, e), False, "c") + thread.exit() + +@hook.command("pyeval") +def onPyevalCommand(sender, args): + if sender.hasPermission("utils.pyeval"): + if not checkargs(sender, args, 1, -1): + return True + msg(sender, "%s" % " ".join(args), False, "e") + try: + thread.start_new_thread(evalThread, (sender, " ".join(args))) + except Exception, e: + msg(sender, "&cInternal error: %s" % e) + else: + noperm(sender) + return True + + +# +# /sudo - execute command/chat *as* a player/console +# + + +@hook.command("sudo") +def onSudoCommand(sender, args): + if sender.hasPermission("utils.sudo"): + plugHeader(sender, "Sudo") + if not checkargs(sender, args, 2, -1): + return True + target = args[0] + + cmd = " ".join(args[1:]) + msg(sender, "Running '&e%s&r' as &3%s" % (cmd, target)) + if cmd[0] == "/": + cmd = cmd[1:] + if target.lower() == "server" or target.lower() == "console": + runas(server.getConsoleSender(), cmd) + elif server.getPlayer(target): + runas(server.getPlayer(target), cmd) + else: + msg(sender, "&cPlayer %s not found!" % target) + else: + if target.lower() == "server" or target.lower() == "console": + runas(server.getConsoleSender(), "say %s" % cmd) + elif server.getPlayer(target): + server.getPlayer(target).chat(cmd) + else: + msg(sender, "&cPlayer %s not found!" % target) + else: + noperm(sender) + return True + + + + + + + + + + +# +# Various text commands +# + +@hook.command("rules") +def onRulesCommand(sender, args): + if not checkargs(sender, args, 0, 0): + return True + arrow = u"\u2192" + plugHeader(sender, "Redstoner rules") + msg(sender, "&31 &7" + arrow + " &bMake use of common sense and respect.") + msg(sender, "&32 &7" + arrow + " &bDo NOT ask for promotion.") + msg(sender, "&33 &7" + arrow + " &bDo NOT use cheats in Survival worlds.") + msg(sender, "&34 &7" + arrow + " &bDo NOT spam entities or leave clocks running.") + msg(sender, "&35 &7" + arrow + " &bSwearing is okay, offending is NOT.") + msg(sender, "&36 &7" + arrow + " &bDo NOT build huge walls around your plot.") + msg(sender, "&37 &7" + arrow + " &bListen to the admins and mods, even if it is not in the rules.") + msg(sender, "&38 &7" + arrow + " &bOnly english in public chat.") + msg(sender, "&39 &7" + arrow + " &bEveryone can get punished, even admins.") + msg(sender, "&310 &7" + arrow + " &bSame rules for everyone.") + msg(sender, "&311 &7" + arrow + " &bNO OP items.") + msg(sender, "&312 &7" + arrow + " &bDo NOT trap other players.") + return True + + +@hook.command("history") +def onHistoryCommand(sender, args): + if not checkargs(sender, args, 0, 0): + return True + plugHeader(sender, "Redstoner history") + msg(sender, "") + msg(sender, " &2First, oliverissocool1 owned redstoner.com plus the server which usually had 10-15 players on.\n") + msg(sender, " &2Oliver became lazy and thus moved ownership to oleerik, who was another admin there.\n") + msg(sender, " &2Dico joined the server and later he became a moderator.\n") + msg(sender, " &2But then oleerik also became lazy, lost interest and shut down the server.\n") + msg(sender, " &2Some time later he offered dico to use the server and he was - of course - interested in it.\n") + msg(sender, " &2The server did not have the old worlds and configuration anymore and it was down for a good while, so it was like a complete new server.\n") + msg(sender, " &2He invited some friends to help him set up the server before opening it to the public (as his 'fan server').\n") + msg(sender, " &2Redstone Sheep was one of these friends and made the website, he happened to become the guy who maintains the whole server.\n") + msg(sender, " &2The server somtimes crashed or lost it's connection and we were not too happy plus oleerik was always paying for it, without using it himself.\n") + msg(sender, " &2PanFritz first helped out by donating and then offered to host a physical server.\n") + msg(sender, " &2We discussed a lot and moved everything, it worked very well.\n") + msg(sender, " &2A month or two later, a new server was bought from donations and it took some time until the new machine was ready, but the move went quick and without much downtime.\n") + msg(sender, " &2Another couple months later, the server underwent many major changes, this update was known as Redstoner 2.0 and vastly improved almost every aspect of the server.\n") + + msg(sender, " &2That's our story for now.") + return True + + +@hook.command("nick") +def onNickCommand(sender, args): + plugHeader(sender, "Nicknames") + msg(sender, "&31. &aYou need to be Donor or Trusted. &8&o(See /ranks)") + msg(sender, "&32. &aHas to begin with &nat least&3&o " + sender.getName()[:3] + "&a.") + msg(sender, "&33. &aMore characters are required when other players") + msg(sender, "&a begin with the same 3 letters.") + msg(sender, "&34. &aIt must not be longer than your name.") + msg(sender, "&a (e.g. No addons like '&3" + sender.getName() + "TheCoolOne&a'.)") + msg(sender, "&6Ask any staff to get your nickname. Requests are ignored when requirements are not covered. Be patient.") + return True + + +@hook.command("ranks") +def onRanksCommand(sender, args): + if not checkargs(sender, args, 0, 0): + return True + plugHeader(sender, "Rank colours") + msg(sender, " &7Guest") + msg(sender, " &fMember") + msg(sender, " &aBuilder") + msg(sender, " &3Trusted") + msg(sender, " &cModerator") + msg(sender, " &4Admin") + plugHeader(sender, "Rank info") + msg(sender, " &oitalic &rnames are nicks. use &a/realname <nick>&r to check") + msg(sender, " &eDonator&r rank has <name> &e$&r") + msg(sender, " &eDonator+&r rank has <name> &e&l$&r") + msg(sender, " To get the &e$&r, see &a/donate&r for more info") + msg(sender, "") + return True + + +@hook.command("donate") +def onDonateCommand(sender, args): + if not checkargs(sender, args, 0, 0): + return True + msg(sender, "") + plugHeader(sender, "Donations") + msg(sender, " &aWant to donate? Awesome!") + msg(sender, " &6all info is at &nredstoner.com/donate&r") + msg(sender, "") + return True + +# +# /pluginversions - print all plugins + versions; useful when updating plugins +# + +@hook.command("pluginversions") +def onPluginversionsCommand(sender, args): + plugHeader(sender, "Plugin versions") + plugins = server.getPluginManager().getPlugins().tolist() + plugins.sort(key=lambda pl: pl.getName()) + msg(sender, "&3Listing all " + str(len(plugins)) + " plugins and their version:") + for plugin in plugins: + msg(sender, "&6" + plugin.getName() + "&r: &e" + plugin.getDescription().getVersion()) + return True + + +# +# Various command aliases +# + +@hook.command("spawn") +def onSpawnCommand(sender, args): + warp(sender, args, "spawn") + return True + +@hook.command("cr") +def onCrCommand(sender, args): + warp(sender, args, "cr") + return True + +@hook.command("tr") +def onTrCommand(sender, args): + warp(sender, args, "tr") + return True + +@hook.command("faq") +def onFaqCommand(sender, args): + warp(sender, args, "faq") + return True
\ No newline at end of file diff --git a/mysqlhack.py b/mysqlhack.py index f102dc3..9b8a7ba 100644 --- a/mysqlhack.py +++ b/mysqlhack.py @@ -1,3 +1,4 @@ +#pylint: disable=F0401 import java.lang.reflect.Method import java.io.File import java.net.URL @@ -7,6 +8,8 @@ from java.lang import Class # hacky code to add mysql-connector to java's classpath ('classPathHack') +# DO NOT TOUCH, it works, mkay? + jarfile = "lib/mysql-connector.jar" driver = "com.mysql.jdbc.Driver" @@ -1,13 +1,8 @@ from helpers import * import simplejson as json import time -import sys -import os import thread -# pythonloader changes this for some reason.. -#sys.path += ['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/pymodules/python2.7'] - reports_filename = "plugins/redstoner-utils.py.dir/files/reports.json" time_format = "%Y.%m.%d %H:%M" reports = [] @@ -57,7 +52,7 @@ def saveReports(): error("Failed to write reports: " + str(e)) @hook.command("rp") -def onCommand(sender, args): +def onRpCommand(sender, args): if sender.hasPermission("utils.rp"): plugHeader(sender, "Reports") if len(args) > 0: @@ -68,7 +63,7 @@ def onCommand(sender, args): return True try: repid = int(args[1]) - except: + except ValueError: msg(sender, "&cDoesn't look like &3" + args[1] + "&c is a valid number!") printHelp(sender) return True @@ -88,7 +83,7 @@ def onCommand(sender, args): return True @hook.command("report") -def onCommand(sender, args): +def onReportCommand(sender, args): plugHeader(sender, "Report") if not isPlayer(sender): msg(sender, "&conly players can do this") @@ -115,7 +110,7 @@ def onCommand(sender, args): msg(sender, "&aReported \"&e" + text + "&a\"") return True -def checkForReports(foo, sender): # needs 2 args for unknown reason +def checkForReports(): # needs 2 args for unknown reason while True: for i in range(0, check_delay*2): time.sleep(0.5) # check every 0.5 seconds if we should kill the thread @@ -127,7 +122,8 @@ def checkForReports(foo, sender): # needs 2 args for unknown reason broadcast("utils.rp", "&aThere are %s pending reports!" % len(reports)) def stopChecking(): + global check_reports log("Ending reports reminder thread") check_reports = False -thread.start_new_thread(checkForReports, ("foo", "bar")) +thread.start_new_thread(checkForReports, ()) @@ -1,5 +1,4 @@ import simplejson as json -import org.bukkit as bukkit from time import time from helpers import * from random import randrange @@ -28,15 +27,15 @@ def add_lol(txt): lols.append(txt) save_lols() -def del_lol(id): - lols.pop(id) +def del_lol(lid): + lols.pop(lid) save_lols() -def print_lol(sender, id): +def print_lol(sender, lid): 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])) + broadcast("", "&8[&blol&8] &7%s&8: &e%s" % (dispname, lols[lid])) last_msg = time() else: plugHeader(sender, "SayLol") @@ -44,27 +43,30 @@ def print_lol(sender, id): @hook.command("lol") -def onCommand(sender, args): +def onLolCommand(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: + except ValueError: 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") @@ -72,6 +74,7 @@ def onCommand(sender, args): msg(sender, "&aNew lol message added!") else: noperm(sender) + elif cmd == "del": if sender.hasPermission("utils.lol.modify"): plugHeader(sender, "SayLol") @@ -79,8 +82,9 @@ def onCommand(sender, args): i = int(args[1]) del_lol(i) msg(sender, "&aLol message &e#%s&a deleted!" % i) - except Exception, e: + except ValueError: msg(sender, "&cInvalid number '&e%s&c'" % args[1]) + else: plugHeader(sender, "SayLol") msg(sender, "&a/lol &eSay random message") diff --git a/skullclick.py b/skullclick.py index 448dfaf..e5e022a 100644 --- a/skullclick.py +++ b/skullclick.py @@ -1,5 +1,6 @@ +#pylint: disable=F0401 import org.bukkit as bukkit -from helpers import * +from helpers import msg @hook.event("player.PlayerInteractEvent", "monitor") def onInteract(event): diff --git a/tilehelper.py b/tilehelper.py index 02b299a..d78b860 100644 --- a/tilehelper.py +++ b/tilehelper.py @@ -1,4 +1,4 @@ -import org.bukkit as bukkit +#pylint: disable=F0401 import org.bukkit.event.block.BlockPlaceEvent as BlockPlaceEvent from helpers import * diff --git a/webtoken.py b/webtoken.py index 51973f0..4a15b2e 100644 --- a/webtoken.py +++ b/webtoken.py @@ -1,3 +1,4 @@ +#pylint: disable=F0401 import mysqlhack import thread from re import match @@ -41,18 +42,13 @@ def generate_token(length): token += vows[randrange(5)] return token -def set_token(uuid): - token = generate_token(6) - # REPLACE INTO website.register_token uuid={uuid}, token={token}; - return token - def get_token(uuid): # ae795aa86327408e92ab25c8a59f3ba1 results = mysql_query("SELECT DISTINCT `token`, `email` FROM register_tokens WHERE `uuid` = ? LIMIT 1", (uuid,)) return results[0] if len(results) == 1 else None - - -def token_command(sender, args, foo): + + +def token_command(sender): plugHeader(sender, "Website Token") if isPlayer(sender): try: @@ -68,13 +64,13 @@ def token_command(sender, args, foo): else: msg(sender, "&cThis is only for players..") -def tokengen_command(sender, args, foo): +def tokengen_command(sender, args): plugHeader(sender, "Website Token") if isPlayer(sender): if checkargs(sender, args, 1, -1): # email regex, needs something followed by an @ followed by something mail = " ".join(args) # email may contain spaces - if match("^.+@(.+\..{2,}|\[[0-9a-fA-F:.]+\])$", mail) != None: + if match("^.+@(.+\\..{2,}|\\[[0-9a-fA-F:.]+\\])$", mail) != None: token = generate_token(6) uuid = sender.getUniqueId().toString().replace("-", "") try: @@ -94,17 +90,17 @@ def tokengen_command(sender, args, foo): @hook.command("token") -def onCommand(sender, args): - thread.start_new_thread(token_command, (sender, args, "foo")) +def onTokenCommand(sender, args): + thread.start_new_thread(token_command, (sender,)) return True - + @hook.command("tokengen") -def onCommand(sender, args): - thread.start_new_thread(tokengen_command, (sender, args, "foo")) +def onTokengenCommand(sender, args): + thread.start_new_thread(tokengen_command, (sender, args)) return True - - - - - - + + + + + + |