""" command_debug - Toggle debug powers for players in-game. Registers the !debug admin command, which grants or revokes realitydebug developer powers for a named player. Usage: !debug Initialization: import command_debug command_debug.init() # default permissions (0) command_debug.init(permissions=1) # require permission level 1 """ import realitydebug import realityserver import realityadmin as radmin DEBUG_PERMISSIONS = 0 def init(permissions=DEBUG_PERMISSIONS): radmin.addCommand("debug", commandDebug, permissions) def commandDebug(args, p): if len(args) < 1: radmin.personalMessage( "Please specify a player to toggle debug for", p) return False foundPlayers = radmin.findPlayer(args[0], p) if len(foundPlayers) == 0: radmin.adminPM("Player %s not found." % (args[0]), p) radmin.logAdmin("!debug", p.getName(), "", "Player %s not found." % (args[0])) return False if len(foundPlayers) > 1: radmin.adminPM("Multiple players found matching %s:" % (args[0]), p) for player in foundPlayers: radmin.adminPM("- %s" % (player.getName()), p) radmin.logAdmin("!debug", p.getName(), "", "Multiple players found matching %s" % (args[0])) return False hash = realityserver.getPlayerHash(foundPlayers[0]) if hash in realitydebug.PRDEBUG_DEVS.values(): del realitydebug.PRDEBUG_DEVS[foundPlayers[0].getName()] radmin.adminPM( "%s's debug powers have been revoked." % (foundPlayers[0].getName()), p ) radmin.logAdmin("!debug", p.getName(), foundPlayers[0].getName(), "Revoked debug powers") else: realitydebug.PRDEBUG_DEVS[player.getName()] = hash radmin.adminPM( "%s has been granted debug powers." % (foundPlayers[0].getName()), p ) radmin.logAdmin("!debug", p.getName(), foundPlayers[0].getName(), "Granted debug powers") return True