@plugin class AdminTools(object): def __init__(self, server): self.server = server self.server.pluginManager.loadPlugin("auth") self.commands = [ "nick", "join", "part", "kick", "ban", "mute", "unban", "unmute", "op", "deop", "voice", "devoice", "unop", "unvoice" ] self.server.handle("command", self.handle_command, self.commands) def handle_command(self, channel, user, cmd, args): if self.server.getPlugin("auth").isAdmin(user): if cmd == "op": if len(args) < 1: self.server.doMode(channel, "+o", user) else: self.server.doMode(channel, "+o", args[0]) elif cmd == "deop" or cmd == "unop": if len(args) < 1: self.server.doMode(channel, "-o", user) else: self.server.doMode(channel, "-o", args[0]) elif cmd == "voice": if len(args) < 1: self.server.doMode(channel, "+v", user) else: self.server.doMode(channel, "+v", args[0]) elif cmd == "devoice" or cmd == "unvoice": if len(args) < 1: self.server.doMode(channel, "-v", user) else: self.server.doMode(channel, "-v", args[0]) else: if len(args) < 1: self.server.doMessage(channel, user+": Not enough arguments.") return if cmd == "join": self.server.doJoin(args[0]) elif cmd == "part": self.server.doPart(args[0]) elif cmd == "nick": self.server.doNick(args[0]) elif self.server.config["nickname"] not in args[0]: if cmd == "ban": self.server.doMode(channel, "+b", args[0]) self.server.doKick(channel, args[0], "Banned!") elif cmd == "unban": self.server.doMode(channel, "-b", args[0]) elif cmd == "mute": self.server.doMode(channel, "+q", args[0]) elif cmd == "unmute": self.server.doMode(channel, "-q", args[0]) elif cmd == "kick": self.server.doKick(channel, args[0], "Kicked!") if self.server.getPlugin("auth").isOwner(user): if cmd == "die": self.server.doMessage(channel, user + " wants me to leave, but I'll be back!") self.server.doQuit()