def _inputbox_handle(): userid = es.getcmduserid() count = int(es.getargc()) if count > 4: parent = es.getargv(1) if popuplib.exists(parent): module = es.getargv(2) if xa.exists(module): module = xa.find(module) varname = es.getargv(3) if module and varname in module.variables: var = module.variables[varname] i = 4 oldval = str(var) newvalue = '' while i < count: newvalue = newvalue+' '+es.getargv(i) i = i + 1 newvalue = newvalue.strip() var.set(newvalue) es.esctextbox(10, userid, "Changed '"+str(varname)+"' setting", "Changed '%s' to '%s'\nThe variable menu is open again.\nPress [ESC] a second time." %(varname,newvalue)) menu = _variableEditMenu(userid, module, var, parent) menu.send(userid) xaconfig.logging.log("Admin %s just change config %s from %s to %s" % (es.getplayername(userid), varname, oldval, newvalue) ) else: es.esctextbox(10, userid, "Invalid Entry", "<value>")
def services_proxy(): service = es.getargv(1) myserv = services.use(service) if not isinstance(myserv, LegacyAuthorizationService): # e2py function = es.getargv(2) # HACK: For auth services responsevarn = 0 responsevar = None if service=="auth": # fix the case of the function for caser in returnvarlist.keys(): if caser.lower() == function.lower(): function = caser responsevarn = returnvarlist[function] if returnvarlist.has_key(function) else 0 if responsevarn: responsevar = es.ServerVar(es.getargv(responsevarn)) arglist = [myserv] for j in range(3,es.getargc()): if not j == responsevarn: arglist.append(es.getargv(j)) func = myserv.__class__.__dict__[function] d = func(*arglist) if d is not None and responsevar is not None: responsevar.set(d) else: # e2e cmd = myserv.cmdname args = es.getargs()[len(service)+1:] newcmd = "%s %s" % (cmd, args) es.server.cmd(newcmd)
def callback(self, cmdlist, name): """ This function is called when a server, say, or client command is received If the command name is present in the list of the same type of commands, the callback function is called """ if name in cmdlist: cmdlist[name].execute(self.CMDArgs(es.getargv(x) for x in range(1, es.getargc())))
def services_proxy(): service = es.getargv(1) myserv = services.use(service) if not isinstance(myserv, LegacyAuthorizationService): # e2py function = es.getargv(2) # HACK: For auth services responsevarn = 0 responsevar = None if service == "auth": # fix the case of the function for caser in returnvarlist.keys(): if caser.lower() == function.lower(): function = caser responsevarn = returnvarlist[function] if returnvarlist.has_key( function) else 0 if responsevarn: responsevar = es.ServerVar(es.getargv(responsevarn)) arglist = [myserv] for j in range(3, es.getargc()): if not j == responsevarn: arglist.append(es.getargv(j)) func = myserv.__class__.__dict__[function] d = func(*arglist) if d is not None and responsevar is not None: responsevar.set(d) else: # e2e cmd = myserv.cmdname args = es.getargs()[len(service) + 1:] newcmd = "%s %s" % (cmd, args) es.server.cmd(newcmd)
def _inputbox_handle(): userid = es.getcmduserid() count = int(es.getargc()) if count > 4: parent = es.getargv(1) if popuplib.exists(parent): module = es.getargv(2) if xa.exists(module): module = xa.find(module) varname = es.getargv(3) if module and varname in module.variables: var = module.variables[varname] i = 4 oldval = str(var) newvalue = '' while i < count: newvalue = newvalue + ' ' + es.getargv(i) i = i + 1 newvalue = newvalue.strip() var.set(newvalue) es.esctextbox( 10, userid, "Changed '" + str(varname) + "' setting", "Changed '%s' to '%s'\nThe variable menu is open again.\nPress [ESC] a second time." % (varname, newvalue)) menu = _variableEditMenu(userid, module, var, parent) menu.send(userid) xaconfig.logging.log( "Admin %s just change config %s from %s to %s" % (es.getplayername(userid), varname, oldval, newvalue)) else: es.esctextbox(10, userid, "Invalid Entry", "<value>")
def redirect_cmd(): """ redirect <userid/player name/"Steam ID"> ["IP"] [kick] [delay] Ensures a correct number of arguments were provided Ensures the specified player exists Retrieves the optional arguments while converting them to the desired type Calls send_prompt with the specified arguments """ int_arg_count = es.getargc() int_cmd_userid = es.getcmduserid() if int_arg_count in (2, 3, 4, 5): str_player_arg = es.getargv(1) int_userid = es.getuserid(str_player_arg) if int_userid: list_args = [int_userid, str(var_ip), int(var_kick), float(var_delay)] dict_arg_types = {2:str, 3:int, 4:float} for int_x in range(2, int_arg_count): try: list_args[int_x - 1] = dict_arg_types[int_x](es.getargv(int_x)) except: display_feedback(int_cmd_userid, 'invalid argument', {'arg':es.getargv(int_x), 'type':dict_arg_types[int_x].__name__}) return send_prompt(*list_args) else: display_feedback(int_cmd_userid, 'no player', {'player':str_player_arg}) else: display_feedback(int_cmd_userid, 'syntax', {'syntax':'xaredirect <userid/player name/\"Steam ID\"> [\"IP\"] [kick] [delay]'})
def callback(self, cmdlist, name): """ This function is called when a server, say, or client command is received If the command name is present in the list of the same type of commands, the callback function is called """ if name in cmdlist: cmdlist[name].execute(self.CMDArgs(es.getargv(x) for x in xrange(1, es.getargc())))
def _inputbox_handle(): es.dbgmsg(1, '*****_inputbox_handle') userid = es.getcmduserid() count = int(es.getargc()) if count == 3: groupname = es.getargv(1) level = es.getargv(2) level = level.lower() if level in ('root', 'admin', 'poweruser', 'known', 'all'): if level == 'root': level = 0 if level == 'admin': level = 1 if level == 'poweruser': level = 2 if level == 'known': level = 4 if level == 'all': level = 128 es.server.queuecmd('gauth group create %s %d' % (groupname, level)) es.esctextbox( 10, userid, "New group added", "You have added group: %s with access level %s" % (groupname, level)) else: es.esctextbox( 10, userid, "Invalid level", "Accepted levels:\n -admin\n -poweruser\n -known\n -all") else: es.esctextbox(10, userid, "Invalid Entry", "<groupname-no spaces> <level>")
def _inputbox_handle(): es.dbgmsg(1,'*****_inputbox_handle') userid = es.getcmduserid() count = int(es.getargc()) if count == 3: groupname = es.getargv(1) level = es.getargv(2) level = level.lower() if level in ('root','admin','poweruser','known','all'): if level == 'root': level = 0 if level == 'admin': level = 1 if level == 'poweruser': level = 2 if level == 'known': level = 4 if level == 'all': level = 128 es.server.queuecmd('gauth group create %s %d' %(groupname,level)) es.esctextbox(10, userid, "New group added", "You have added group: %s with access level %s" %(groupname,level)) else: es.esctextbox(10, userid, "Invalid level", "Accepted levels:\n -admin\n -poweruser\n -known\n -all") else: es.esctextbox(10, userid, "Invalid Entry", "<groupname-no spaces> <level>")
def _formatv(findex): count = es.getargc() format = es.getargv(findex) num = 0 for indx in range(findex+1,count): num += 1 format = format.replace("%"+str(num),str(es.server_var[es.getargv(indx)])) return format
def saferemove_cmd(): """ xa_restrict_saferemove <index> """ if es.getargc() == 2: saferemove(es.getargv(1)) else: es.dbgmsg(0, 'Syntax: xa_restrict_saferemove <index>')
def saferemove_cmd(): """ xa_restrict_saferemove <index> """ if es.getargc() == 2: saferemove(es.getargv(1)) else: es.dbgmsg(0, "Syntax: xa_restrict_saferemove <index>")
def command_extra(): args = [] for i in range(1,es.getargc()): args.append(es.getargv(i)) func = '%s_%s' %(args[0],args[1]) if func in gCommands: gCommands[func](args) else: es.dbgmsg(0,'[group_auth] Unknown command: '+args[0]+' '+args[1])
def addonCommandListener(): b = 0 c = es.getargc() args = [] while b != c: args.append(es.getargv(b)) b += 1 cmd = args.pop(0) addoncommands[cmd](es.getcmduserid(),args)
def __call__(self): self.run(priority=True, userargs={ 'cmdname': getargv(0), 'argv': list(map(getargv, range(1, getargc()))), 'args': getargs(), 'uid': int(getcmduserid()) }) sv.save()
def browse_cmd(): args = [es.getargv(x) for x in xrange(1, es.getargc())] if not len(args): xamodule.logging.log("Incorrect usage: xa_browse <url>") return url = urllib.quote(args[0]) if not url.startswith('http://'): url = 'http://' + url xamodule.logging.log("Opening url: %s" % url) usermsg.motd(es.getcmduserid(), 2, "XA Browse", url)
def browse_cmd(): args = [es.getargv(x) for x in xrange(1, es.getargc())] if not len(args): xamodule.logging.log("Incorrect usage: xa_browse <url>") return url = urllib.quote(args[0]) if not url.startswith('http://'): url = 'http://'+url xamodule.logging.log("Opening url: %s" % url) usermsg.motd(es.getcmduserid(), 2, "XA Browse", url)
def command_extra(): args = [] for i in range(1, es.getargc()): args.append(es.getargv(i)) func = '%s_%s' % (args[0], args[1]) if func in gCommands: gCommands[func](args) else: es.dbgmsg(0, '[group_auth] Unknown command: ' + args[0] + ' ' + args[1])
def _callback(cls): name = es.getargv(0) command = cls._names[name] if not command.names[name]: command.disabled_callback(command.INFORMER, name) return args = [es.getargv(arg) for arg in xrange(1, es.getargc())] try: args = _Command._get_transformed_args(command.callback, args) except ArgumentCountError, (args, ): command.invalid_syntax_callback(command.INFORMER, name, command.callback.parameters, args)
def removeidle_cmd(): """ xa_restrict_removeidle [weapon 1] [weapon 2] ... [weapon n] """ arg_count = es.getargc() if arg_count > 1: weapons = getWeaponList([es.getargv(x).lower() for x in range(1, arg_count)]) if not weapons: raise IndexError, 'Invalid weapon list' removeidle(weapons) else: removeidle()
def xarestrict_cmd(): """ xa_restrict <player/team> <weapon 1> [weapon 2] ... [weapon n] xa_unrestrict <player/team> <weapon 1> [weapon 2] ... [weapon n] """ arg_count = es.getargc() command_name = es.getargv(0).lower() func_command = restrict if command_name == "xa_restrict" else unrestrict if arg_count > 2: func_command(es.getargv(1).lower(), [es.getargv(x).lower() for x in range(2, arg_count)]) else: es.dbgmsg(0, "Syntax: %s <player/team> <weapon 1> [weapon 2] ... [weapon n]" % command_name)
def exp_reg(args_dummy): argc = es.getargc() if argc > 3: global funcs global funcsregex global regex1 block = es.getargv(2) func = es.getargv(1) minargs = es.getargv(3) if not func in funcs: if re.match('^.+/.+(/.+)?$', block): if es.exists('block', block): if argc > 4: global funccmds userfunc = '_exp_userfunc' + str(len(funccmds) + 1) es.regcmd(userfunc, block, 'exp user function') funcs[func] = {} funccmds.append(userfunc) funcs[func]['function'] = userfunc funcs[func]['minargs'] = int(minargs) funcs[func]['var'] = es.getargv(4) funcsregex = '|'.join(funcs) regex1 = re.compile(funcsregex) else: es.dbgmsg( 0, 'exp_reg : input variable name must be given for function block' ) else: es.dbgmsg(0, 'exp_reg : invalid block given') elif re.match('^.+\\..+(\\..+)?$', block): temp = block.split('.') exec('temp = callable(' + block + ')') if temp: exec('funcs[func][\'function\'] = ' + block) funcs[func]['minargs'] = minargs funcsregex = '|'.join(funcs) regex1 = re.compile(funcsregex) else: es.dbgmsg(0, 'exp_reg : invalid function given') else: es.dbgmsg(0, 'exp_reg : invalid block/function given') else: es.dbgmsg(0, 'exp_reg : function already registered') else: es.dbgmsg( 0, 'Syntax : exp_reg <function-name> <function/block> <min-args> [var]' )
def removeidle_cmd(): """ xa_restrict_removeidle [weapon 1] [weapon 2] ... [weapon n] """ arg_count = es.getargc() if arg_count > 1: weapons = getWeaponList( [es.getargv(x).lower() for x in range(1, arg_count)]) if not weapons: raise IndexError, 'Invalid weapon list' removeidle(weapons) else: removeidle()
def voteCmd(): command = es.getargv(0).replace('xa_', '').replace('vote', '') args = [] argLength = es.getargc() tempCount = 0 while tempCount < argLength: tempCount += 1 args.append(es.getargv(tempCount)) if '' in args: args.remove('') commandFunction = vote_list[command]['commandFunction'] if callable(commandFunction): if args: commandFunction(args) else: commandFunction()
def voteCmd(): command = es.getargv(0).replace('xa_','').replace('vote','') args = [] argLength = es.getargc() tempCount = 0 while tempCount < argLength: tempCount += 1 args.append(es.getargv(tempCount)) if '' in args: args.remove('') commandFunction = vote_list[command]['commandFunction'] if callable(commandFunction): if args: commandFunction(args) else: commandFunction()
def _callback(cls): user_ID = es.getcmduserid() name = es.getargv(0) command = cls._names[name] if (command.requires_auth and not clients.is_user_authorised(es.getplayersteamid(user_ID), command.permission)): command.no_auth_callback(command.INFORMER, name, user_ID) return args = [es.getargv(arg) for arg in xrange(1, es.getargc())] try: args = _Command._get_transformed_args(command.callback, args, user_ID=user_ID) except ArgumentCountError, (args, ): command.invalid_syntax_callback(command.INFORMER, name, command.callback.parameters, args, user_ID=user_ID)
def _inputbox_handle(): userid = es.getcmduserid() count = int(es.getargc()) if count > 5: parent = es.getargv(1) if popuplib.exists(parent): module = es.getargv(2) if xa.exists(module): module = xa.find(module) keylist = langlist[str(module)] lang = es.getargv(3) key = es.getargv(4) if not key in keylist: key = es.getargv(4).replace('+', ' ') if module and lang and key in keylist: i = 5 newvalue = '' while i < count: newvalue = newvalue + ' ' + es.getargv(i) i = i + 1 newvalue = newvalue.strip() if newvalue: language = cfglib.AddonINI( "%s/modules/%s/strings.custom.ini" % (xa.coredir(), module)) language.addValueToGroup(key, lang, newvalue, True) language.write() es.tell( userid, '#green', xalang('string warning', playerlib.getPlayer(userid).get('lang'))) else: newvalue = langlist[str(module)](key, lang) try: langlist[str(module)] = module.language.getLanguage() except IOError: pass es.esctextbox( 10, userid, "Changed '" + str(keylist(key, lang)) + "' string", "Changed '%s' to '%s'\nThe language menu is open again.\nPress [ESC] a second time." % (keylist(key, lang), newvalue)) menu = _stringEditMenu(userid, module, key, parent) menu.send(userid) else: es.esctextbox(10, userid, "Invalid Entry", "<string>")
def uxp_reg(args_dummy): argc = es.getargc() if argc > 2: global uxpfuncs global funcs global regex1 subcmd = es.getargv(1) if subcmd == 'create': if argc > 3: func = es.getargv(2) cmdstring = es.getargv(3) if func in funcs: es.dbgmsg(0, 'uxp_reg : function already registered') elif not '%var' in cmdstring: es.dbgmsg( 0, 'uxp_reg : %var MUST be included in command string') else: uxpfuncs.append(func) funcs[func] = {'uxp': cmdstring, 'minargs': 0} funcsregex = '|'.join(funcs) regex1 = re.compile(funcsregex) else: es.dbgmsg( 0, 'Syntax : uxp_reg create <function> <commandstring>') elif subcmd == 'delete': func = es.getargv(2) if func in uxpfuncs: del uxpfuncs[func] del funcs[func] funcsregex = '|'.join(funcs) regex1 = re.compile(funcsregex) elif subcmd == 'status': if argc > 3: var = es.getargv(2) func = es.getargv(3) if func in uxpfuncs: es.set(var, '1') else: es.set(var, '0') else: es.dbgmsg(0, 'Syntax : uxp_reg status <variable> <function>') else: es.dbgmsg(0, 'uxp_reg : invalid subcommand (create|delete|status)') else: es.dbgmsg(0, 'Syntax : uxp_reg <subcmd> <args>')
def exp_reg(args_dummy): argc = es.getargc() if argc > 3: global funcs global funcsregex global regex1 block = es.getargv(2) func = es.getargv(1) minargs = es.getargv(3) if not func in funcs: if re.match("^.+/.+(/.+)?$", block): if es.exists("block", block): if argc > 4: global funccmds userfunc = "_exp_userfunc" + str(len(funccmds) + 1) es.regcmd(userfunc, block, "exp user function") funcs[func] = {} funccmds.append(userfunc) funcs[func]["function"] = userfunc funcs[func]["minargs"] = int(minargs) funcs[func]["var"] = es.getargv(4) funcsregex = "|".join(funcs) regex1 = re.compile(funcsregex) else: es.dbgmsg(0, "exp_reg : input variable name must be given for function block") else: es.dbgmsg(0, "exp_reg : invalid block given") elif re.match("^.+\\..+(\\..+)?$", block): temp = block.split(".") exec ("temp = callable(" + block + ")") if temp: exec ("funcs[func]['function'] = " + block) funcs[func]["minargs"] = minargs funcsregex = "|".join(funcs) regex1 = re.compile(funcsregex) else: es.dbgmsg(0, "exp_reg : invalid function given") else: es.dbgmsg(0, "exp_reg : invalid block/function given") else: es.dbgmsg(0, "exp_reg : function already registered") else: es.dbgmsg(0, "Syntax : exp_reg <function-name> <function/block> <min-args> [var]")
def exp_reg(args_dummy): argc = es.getargc() if argc > 3: global funcs global funcsregex global regex1 block = es.getargv(2) func = es.getargv(1) minargs = es.getargv(3) if not func in funcs: if re.match('^.+/.+(/.+)?$', block): if es.exists('block', block): if argc > 4: global funccmds userfunc = '_exp_userfunc' + str(len(funccmds) + 1) es.regcmd(userfunc, block, 'exp user function') funcs[func] = {} funccmds.append(userfunc) funcs[func]['function'] = userfunc funcs[func]['minargs'] = int(minargs) funcs[func]['var'] = es.getargv(4) funcsregex = '|'.join(funcs) regex1 = re.compile(funcsregex) else: es.dbgmsg(0, 'exp_reg : input variable name must be given for function block') else: es.dbgmsg(0, 'exp_reg : invalid block given') elif re.match('^.+\\..+(\\..+)?$', block): temp = block.split('.') exec('temp = callable(' + block + ')') if temp: exec('funcs[func][\'function\'] = ' + block) funcs[func]['minargs'] = minargs funcsregex = '|'.join(funcs) regex1 = re.compile(funcsregex) else: es.dbgmsg(0, 'exp_reg : invalid function given') else: es.dbgmsg(0, 'exp_reg : invalid block/function given') else: es.dbgmsg(0, 'exp_reg : function already registered') else: es.dbgmsg(0, 'Syntax : exp_reg <function-name> <function/block> <min-args> [var]')
def _callback(cls): user_ID = es.getcmduserid() name = es.getargv(0) command = cls._names[name] if (command.requires_auth and not clients.is_user_authorised( es.getplayersteamid(user_ID), command.permission)): command.no_auth_callback(command.INFORMER, name, user_ID) return args = [es.getargv(arg) for arg in xrange(1, es.getargc())] try: args = _Command._get_transformed_args(command.callback, args, user_ID=user_ID) except ArgumentCountError, (args, ): command.invalid_syntax_callback(command.INFORMER, name, command.callback.parameters, args, user_ID=user_ID)
def uxp_reg(args_dummy): argc = es.getargc() if argc > 2: global uxpfuncs global funcs global regex1 subcmd = es.getargv(1) if subcmd == 'create': if argc > 3: func = es.getargv(2) cmdstring = es.getargv(3) if func in funcs: es.dbgmsg(0, 'uxp_reg : function already registered') elif not '%var' in cmdstring: es.dbgmsg(0, 'uxp_reg : %var MUST be included in command string') else: uxpfuncs.append(func) funcs[func] = {'uxp' : cmdstring, 'minargs' : 0} funcsregex = '|'.join(funcs) regex1 = re.compile(funcsregex) else: es.dbgmsg(0, 'Syntax : uxp_reg create <function> <commandstring>') elif subcmd == 'delete': func = es.getargv(2) if func in uxpfuncs: del uxpfuncs[func] del funcs[func] funcsregex = '|'.join(funcs) regex1 = re.compile(funcsregex) elif subcmd == 'status': if argc > 3: var = es.getargv(2) func = es.getargv(3) if func in uxpfuncs: es.set(var, '1') else: es.set(var, '0') else: es.dbgmsg(0, 'Syntax : uxp_reg status <variable> <function>') else: es.dbgmsg(0, 'uxp_reg : invalid subcommand (create|delete|status)') else: es.dbgmsg(0, 'Syntax : uxp_reg <subcmd> <args>')
def xarestrict_cmd(): """ xa_restrict <player/team> <weapon 1> [weapon 2] ... [weapon n] xa_unrestrict <player/team> <weapon 1> [weapon 2] ... [weapon n] """ arg_count = es.getargc() command_name = es.getargv(0).lower() func_command = restrict if command_name == 'xa_restrict' else unrestrict if arg_count > 2: func_command( es.getargv(1).lower(), [es.getargv(x).lower() for x in range(2, arg_count)]) else: es.dbgmsg( 0, 'Syntax: %s <player/team> <weapon 1> [weapon 2] ... [weapon n]' % command_name)
def uxp_reg(args_dummy): argc = es.getargc() if argc > 2: global uxpfuncs global funcs global regex1 subcmd = es.getargv(1) if subcmd == "create": if argc > 3: func = es.getargv(2) cmdstring = es.getargv(3) if func in funcs: es.dbgmsg(0, "uxp_reg : function already registered") elif not "%var" in cmdstring: es.dbgmsg(0, "uxp_reg : %var MUST be included in command string") else: uxpfuncs.append(func) funcs[func] = {"uxp": cmdstring, "minargs": 0} funcsregex = "|".join(funcs) regex1 = re.compile(funcsregex) else: es.dbgmsg(0, "Syntax : uxp_reg create <function> <commandstring>") elif subcmd == "delete": func = es.getargv(2) if func in uxpfuncs: del uxpfuncs[func] del funcs[func] funcsregex = "|".join(funcs) regex1 = re.compile(funcsregex) elif subcmd == "status": if argc > 3: var = es.getargv(2) func = es.getargv(3) if func in uxpfuncs: es.set(var, "1") else: es.set(var, "0") else: es.dbgmsg(0, "Syntax : uxp_reg status <variable> <function>") else: es.dbgmsg(0, "uxp_reg : invalid subcommand (create|delete|status)") else: es.dbgmsg(0, "Syntax : uxp_reg <subcmd> <args>")
def _command_player(): adminid = es.getcmduserid() if adminid > 0: admin = playerlib.getPlayer(adminid) cmd = es.getargv(0).replace(str(es.ServerVar('xa_sayprefix')), 'xa_', 1).replace('ma_', 'xa_', 1) if cmd in punishment_cross_ref: punishment = punishment_cross_ref[cmd] if punishment in punishment_argc: argc = es.getargc() if argc > punishment_argc[punishment]: args = [] for i in range(1, argc): args.append(es.getargv(i)) user = es.getargv(1) for userid in playerlib.getUseridList(user): _punish_player(userid, punishment, adminid, args) elif adminid > 0: es.tell(adminid, xalanguage("not enough args", (), admin.get("lang"))) else: es.dbgmsg(0, xalanguage("not enough args"))
def blind_con_com(): ''' Allows admins to blind via a console command ''' if es.getargc() > 1: id = es.getuserid(es.getargv(1)) admin = playerlib.getPlayer(es.getcmduserid()) if id > 0: target = playerlib.getPlayer(id) if ghosting.setting.getVariable('blind_ghosters') == "0": # can only use this if auto blinding is OFF if checkplayer(int(target)): es.msg( "#green %s blinded %s till the end of the round for ghosting" % (admin.attributes["name"], target.attributes["name"])) ghosting.logging.log( "blinded user %s [%s] for ghosting" % (es.getplayername(id), es.getplayersteamid(id)), int(admin), True) blindplayer(str(target)) else: es.tell( int(admin), "#green %s was not IP ghosting" % (target.attributes["name"])) else: es.tell( int(admin), "#green XA will blind %s automatically if they are IP ghosting" % (target.attributes["name"])) else: es.tell( int(admin), "#green Player %s could not be found" % (str(es.getargv(1)))) else: es.dbgmsg( 0, "Syntax: xa_blind_ghoster <steamid|userid> - blinds ghosting players till the end of the round" )
def blind_con_com(): ''' Allows admins to blind via a console command ''' if es.getargc() > 1: id = es.getuserid(es.getargv(1)) admin = playerlib.getPlayer(es.getcmduserid()) if id > 0: target = playerlib.getPlayer(id) if ghosting.setting.getVariable('blind_ghosters') == "0": # can only use this if auto blinding is OFF if checkplayer(int(target)): es.msg("#green %s blinded %s till the end of the round for ghosting" % (admin.attributes["name"], target.attributes["name"])) ghosting.logging.log("Admin (%s) blinded player %s for ghosting " % (admin.attributes["name"], target.attributes["name"])) blindplayer(str(target)) else: es.tell(int(admin), "#green %s was not IP ghosting" % (target.attributes["name"])) else: es.tell(int(admin), "#green XA will blind %s automatically if they are IP ghosting" % (target.attributes["name"])) else: es.tell(int(admin), "#green Player %s could not be found" % (str(es.getargv(1)))) else: es.dbgmsg(0, "Syntax: xa_blind_ghoster <steamid|userid> - blinds ghosting players till the end of the round")
def _inputbox_handle(): userid = es.getcmduserid() count = int(es.getargc()) if count > 5: parent = es.getargv(1) if popuplib.exists(parent): module = es.getargv(2) if xa.exists(module): module = xa.find(module) keylist = langlist[str(module)] lang = es.getargv(3) key = es.getargv(4) if not key in keylist: key = es.getargv(4).replace('+', ' ') if module and lang and key in keylist: i = 5 newvalue = '' while i < count: newvalue = newvalue+' '+es.getargv(i) i = i + 1 newvalue = newvalue.strip() if newvalue: language = cfglib.AddonINI("%s/modules/%s/strings.custom.ini" % (xa.coredir(), module)) language.addValueToGroup(key, lang, newvalue, True) language.write() es.tell(userid, '#green', xalang('string warning', playerlib.getPlayer(userid).get('lang'))) else: newvalue = langlist[str(module)](key, lang) try: langlist[str(module)] = module.language.getLanguage() except IOError: pass es.esctextbox(10, userid, "Changed '"+str(keylist(key, lang))+"' string", "Changed '%s' to '%s'\nThe language menu is open again.\nPress [ESC] a second time." %(keylist(key, lang),newvalue)) menu = _stringEditMenu(userid, module, key, parent) menu.send(userid) else: es.esctextbox(10, userid, "Invalid Entry", "<string>")
import es
def cleandb(): if es.getargc() == 2 and es.getargv(1) in tables: x = tables[es.getargv(1)].dropColumns() else: x = players.dropColumns() es.dbgmsg(0,'Database cleanup done. Removed %s unneccessary columns' % x)
def concommand(self): command, argv, args, exp = escompile(getargv(0), list(map(getargv, range(1, getargc()))), getargs()) line = (None, command, argv, args, exp) stack.queue([line], 'console', priority=True) sv.save()
def cmdtest_run(): es.set("cmdtest_pass", es.getargv(1)) #print "cmdtest(), args: %s, argc: %d" % (es.getargs(), es.getargc()) if es.getargc() != 2: print("cmdtest0_failed,", es.getargc()) es.doblock("pyunittest/cmdtest_block")
def evaluate(args_dummy): global srcdsargs srcdsargs = [] for arg in range(1, es.getargc()): srcdsargs.append(es.getargv(arg)) srcdsargs = tuple(srcdsargs)
def __call__(self): self.run(priority=True, userargs={'cmdname': getargv(0), 'argv': list(map(getargv, range(1, getargc()))), 'args': getargs(), 'uid': int(getcmduserid())}) sv.save()
def consolecmd(): #Command from server console or non-python script subcmd = es.getargv(1).lower() pname = es.getargv(2) argc = es.getargc() if pname in popuplib.gPopups: p = popuplib.gPopups[pname] else: p = None debug = info if subcmd == "create": if pname: popuplib.create(pname) else: es.dbgmsg(0,"Syntax: popup create <popupname>") elif subcmd == "delete": if pname: if p: popuplib.delete(pname) else: es.dbgmsg(0,"Popup delete: No such popup: "+pname) else: es.dbgmsg(0,"Syntax: popup delete <popupname>") elif subcmd == "addline": if argc == 4: if p: text = str(es.getargv(3)) p.addline(text) else: es.dbgmsg(0,"Popup addline: No such popup: "+pname) else: es.dbgmsg(0,"Syntax: popup addline <popupname> <text>") elif subcmd == "delline": if argc == 4: if p: line = int(es.getargv(3)) p.delline(line) else: es.dbgmsg(0,"Popup delline: No such popup: "+pname) else: es.dbgmsg(0,"Syntax: popup delline <popupname> <line#>") elif subcmd == "insline": if argc == 5: if p: line = int(es.getargv(3)) text = str(es.getargv(4)) p.insline(line, text) else: es.dbgmsg(0,"Popup insline: No such popup: "+pname) else: es.dbgmsg(0,"Syntax: popup insline <popupname> <line#> <text>") elif subcmd == "modline": if argc == 5: if p: line = int(es.getargv(3)) text = str(es.getargv(4)) p.modline(line, text) else: es.dbgmsg(0,"Popup modline: No such popup: "+pname) else: es.dbgmsg(0,"Syntax: popup modline <popupname> <line#> <text>") elif subcmd == "prepuser": if argc == 4: if p: block = str(es.getargv(3)) if block == "0": block = "" p.prepuser = block else: es.dbgmsg(0,"Popup prepuser: No such popup: "+pname) else: es.dbgmsg(0,"Syntax: popup prepuser <popupname> <block>") elif subcmd == "menuselect": if argc == 4: if p: block = es.getargv(3) if block == "0": block = "" p.menuselect = block else: es.dbgmsg(0,"Popup menuselect: No such popup: "+pname) else: es.dbgmsg(0,"Syntax: popup menuselect <popupname> <block>") elif subcmd == "menuselectfb": if argc == 4: if p: block = es.getargv(3) if block == "0": block = "" p.menuselectfb = block else: es.dbgmsg(0,"Popup menuselectfb: No such popup: "+pname) else: es.dbgmsg(0,"Syntax: popup menuselectfb <popupname> <block>") elif subcmd == "select": if argc == 5: if p: item = int(es.getargv(3)) block = es.getargv(4) if block == "0": block = "" p.select(item, block) else: es.dbgmsg(0,"Popup select: No such popup: "+pname) else: es.dbgmsg(0,"Syntax: popup select <popupname> <choice#> <block>") elif subcmd == "submenu": if argc == 5: if p: item = int(es.getargv(3)) block = es.getargv(4) if block == "0": block = "" p.submenu(item, block) else: es.dbgmsg(0,"Popup submenu: No such popup: "+pname) else: es.dbgmsg(0,"Syntax: popup submenu <popupname> <choice#> <submenu>") elif subcmd == "menuvalue": if argc == 6: if p: item = int(es.getargv(4)) varn = es.getargv(3) varv = es.getargv(5) p.menuvalue(varn, item, varv) else: es.dbgmsg(0,"Popup menuvalue: No such popup: "+pname) else: es.dbgmsg(0,"Syntax: popup menuvalue <popupname> <variable> <choice#> <value>") elif subcmd == "timeout": if argc == 5: if p: tomode = es.getargv(3) time = float(es.getargv(4)) p.timeout(tomode, time) else: es.dbgmsg(0,"Popup timeout: No such popup: "+pname) else: es.dbgmsg(0,"Syntax: popup timeout <popupname> <mode> <time>") es.dbgmsg(0," mode: \"send\" or \"view\"") elif subcmd == "send": if argc == 5: try: prio = bool(int(es.getargv(4))) except ValueError: prio = False else: prio = False if argc >= 4: if p: users = es.getargv(3) p.send(playerlib.getUseridList(users),prio) else: es.dbgmsg(0,"Popup send:No such popup: "+pname) else: es.dbgmsg(0,"Syntax: popup send <popupname> <users>") elif subcmd == "unsendname": if argc == 4: if p: users = es.getargv(3) popuplib.unsendname(pname, playerlib.getUseridList(users)) else: es.dbgmsg(0,"Popup unsendname: No such popup: "+pname) else: es.dbgmsg(0,"Syntax: popup unsendname <popupname> <users>") elif subcmd == "close": if argc == 4: if p: users = es.getargv(3) popuplib.close(pname, playerlib.getUseridList(users)) else: es.dbgmsg(0,"Popup close: No such popup: "+pname) else: es.dbgmsg(0,"Syntax: popup close <popupname> <users>") elif subcmd == "isqueued": if argc == 5: if p: retvar = es.getargv(3) userid = int(es.getargv(4)) es.set(retvar,popuplib.isqueued(pname,userid)) else: es.dbgmsg(0,"Popup isqueued: No such popup: "+pname) else: es.dbgmsg(0,"Syntax: popup isqueued <popupname> <var> <userid>") elif subcmd == "active": if argc == 5: retvar = es.getargv(3) userid = int(es.getargv(4)) try: r = popuplib.active(userid) es.set(pname,r['name']) es.set(retvar,r['count']) except KeyError: es.dbgmsg(0,"Popup active: No userid "+str(userid)+" on server.") else: es.dbgmsg(0,"Syntax: popup active <name var> <count var> <userid>") elif subcmd == "exists": if argc == 4: retvar = es.getargv(3) es.set(retvar,int(popuplib.exists(pname))) else: es.dbgmsg(0,"Syntax: popup exists <popupname> <var>") elif subcmd == "addlinef": if argc > 3: if p: text = _formatv(3) p.addline(text) else: es.dbgmsg(0,"Popup addlinef: No such popup: "+pname) else: es.dbgmsg(0,"Syntax: popup addlinef <popupname> <format> [vartoken1] ... [vartoken9]") elif subcmd == "inslinef": if argc > 4: if p: line = int(es.getargv(3)) text = _formatv(4) p.insline(line,text) else: es.dbgmsg(0,"Popup inslinef: No such popup: "+pname) else: es.dbgmsg(0,"Syntax: popup inslinef <popupname> <line#> <format> [vartoken1] ... [vartoken9]") elif subcmd == "modlinef": if argc > 4: if p: line = int(es.getargv(3)) text = _formatv(4) p.modline(line,text) else: es.dbgmsg(0,"Popup modlinef: No such popup: "+pname) else: es.dbgmsg(0,"Syntax: popup modlinef <popupname> <line#> <format> [vartoken1] ... [vartoken9]") elif subcmd == "cachemode": if argc == 4: if p: tomode = es.getargv(3) p.cachemode = tomode else: es.dbgmsg(0,"Popup cachemode: No such popup: "+pname) else: es.dbgmsg(0,"Syntax: popup cachemode <popupname> <mode>") es.dbgmsg(0," mode: \"global\", \"static\" or \"user\"") elif subcmd == "recache": if argc > 2: if p: if argc == 4: users = playerlib.getUseridList(es.getargv(3)) p.recache(users) else: p.recache() else: es.dbgmsg(0,"Popup recache: No such popup: "+pname) else: es.dbgmsg(0,"Syntax: popup recache <popupname> [users]") elif subcmd == "update": if argc == 4: if p: users = playerlib.getUseridList(es.getargv(3)) p.update(users) else: es.dbgmsg(0,"Popup update: No such popup: "+pname) else: es.dbgsmg(0,"Syntax: popup update <popupname> <users>") elif subcmd == "displaymode": if argc == 4: if p: tomode = es.getargv(3) p.displaymode = tomode else: es.dbgmsg(0,"Popup displaymode: No such popup: "+pname) else: es.dbgmsg(0,"Syntax: popup displaymode <popupname> <mode>") es.dbgmsg(0," mode: \"normal\" or \"sticky\"") elif subcmd == "construct": if argc == 6: varp = es.getargv(5) else: varp = "_popup_choice" if argc >= 5: plist = es.getargv(3) pflags = es.getargv(4) nep = popuplib.construct(pname,plist,pflags) nep.c_savevar = varp else: es.dbgmsg(0,"Syntax: popup construct <popupname> <list> <flags> [var]") elif subcmd == "setvar": if argc == 5: if p: ok = False varp = es.getargv(3) if varp.isalnum(): ok = True else: if varp[:2] == "c_" and varp[2:].isalnum(): ok = True varv = es.getargv(4) if ok: p.__setattr__(varp,varv) else: es.dbgmsg(0,"Invalid popup variable name") else: es.dbgmsg(0,"Popup setvar: No such popup: "+pname) else: es.dbgmsg(0,"Syntax: popup setvar <popupname> <variable> <value>") elif subcmd == "getvar": if argc == 5: if p: ok = False varp = es.getargv(3) varv = es.getargv(4) if varv.isalnum(): ok = True else: if varv[:2] == "c_" and varv[2:].isalnum(): ok = True if ok: es.set(varp, p.__getattr__(varv)) else: es.dbgmsg(0,"Invalid popup variable name") else: es.dbgmsg(0,"Popup getvar: No such popup: "+pname) else: es.dbgmsg(0,"Syntax: popup getvar <popupname> <var> <variable>") elif subcmd == "easymenu": if argc == 5: varp = es.getargv(3) block = es.getargv(4) popuplib.easymenu(pname,varp,block) else: es.dbgmsg(0,"Syntax: popup easymenu <popupname> <var> <block>") elif subcmd == "addoption": if argc > 4: if p: item = str(es.getargv(3)) text = str(es.getargv(4)) if argc == 6: state = int(es.getargv(5)) else: state = 1 p.addoption(item, text, state) else: es.dbgmsg(0,"Easymenu addoption: No such popup: "+pname) else: es.dbgmsg(0,"Syntax: popup addoption <popupname> <value> <text> [state]") elif subcmd == "setoption": if argc > 3: if p: item = int(es.getargv(3)) if argc == 5: text = es.getargv(4) if int(text) > 0 and int(text) <= 2 or str(text) == '0': p.setoption(item,None,int(text)) else: p.setoption(item,text,None) elif argc == 6: text = es.getargv(4) state = int(es.getargv(5)) p.setoption(item,text,state) else: es.dbgmsg(0,"Easymenu setoption: No such popup: "+pname) else: es.dbgmsg(0,"Syntax: popup setoption <popupname> <item> [text] [state]") elif subcmd == "description": if argc == 4: if p: text = es.getargv(3) p.setdescription(text) else: es.dbgmsg(0,"Popup description: No such popup: "+pname) else: es.dbgmsg(0,"Usage: popup description <popupname> <text>") elif subcmd == "info": if argc >= 3: if argc == 4: listlevel = int(es.getargv(3)) else: listlevel = 4 if p: p.information(listlevel) else: es.dbgmsg(0, "Syntax: popup info <popupname> [level]") elif subcmd == "emulate": if argc == 5: if p: item = int(es.getargv(3)) users = es.getargv(4) popuplib.emulate(pname,item,users) else: es.dbgmsg(0,"Popup emulate: No such popup: "+pname) else: es.dbgmsg(0,"Syntax: popup emulate <popupname> <choice#> <users>") elif subcmd == "editlang": if argc == 4: if p: p.editlang = str(es.getargv(3)) else: es.dbgmsg(0,"Popup editlang: No such popup: "+pname) else: es.dbgmsg(0,"Syntax: popup editlang <popupname> <language>") elif subcmd == "setstyle": if argc >= 3: style = es.getargv(argc-1) passvalue = 0 if style.startswith("radio"): passvalue |= 1 if style.startswith("esc"): passvalue |= 2 if style.endswith("!"): passvalue |= 128 if argc == 4: if p: p.visualstyle = passvalue else: es.dbgmsg(0,"Popup setstyle: No such popup: "+pname) else: popuplib.gameSupportAdmin = passvalue else: es.dbgmsg(0,"Syntax: popup setstyle [popupname] {auto|radio|esc}[!]") elif subcmd == "quicksend": if argc == 6: block = str(es.getargv(5)) else: block = "" if argc > 4: time = float(es.getargv(2)) userid = float(es.getargv(3)) text = str(es.getargv(4)) popuplib.quicksend(time,userid,text,block) else: es.dbgmsg(0,"Syntax: popup quicksend <time> <userid> <text> [block]") elif subcmd == "list": es.dbgmsg(0,"---------- List of popups:") if argc == 2: listlevel = 0 else: listlevel = int(pname) for pname in popuplib.gPopups: p = popuplib.gPopups[pname] p.information(listlevel) if argc == 2: es.dbgmsg(0, " ") es.dbgmsg(0, "For more details, supply list level (0-4):") es.dbgmsg(0, "Syntax: popup list [level]") es.dbgmsg(0,"----------") else: es.dbgmsg(0,"Invalid popup subcommand, see http://www.eventscripts.com/pages/Popup/ for help")
def consolecmd(): #Command from server console or non-python script subcmd = es.getargv(1).lower() sname = es.getargv(2) argc = es.getargc() if sname in settinglib.gSettings: s = settinglib.gSettings[sname] else: s = None if subcmd == "create": if sname: descr = es.getargv(3) stype = es.getargv(4) if stype == "0": stype = None settinglib.create(sname, descr, stype) else: es.dbgmsg( 0, "Syntax: setting create <settingname> \"<description>\" [type]" ) elif subcmd == "delete": if sname: if s: settinglib.delete(sname) else: es.dbgmsg(0, "Setting delete: No such setting: " + sname) else: es.dbgmsg(0, "Syntax: setting delete <settingname>") elif subcmd == "exists": if argc == 4: retvar = es.getargv(2) sname = es.getargv(3) es.set(retvar, int(settinglib.exists(sname))) else: es.dbgmsg(0, "Syntax: setting exists <var> <settingname>") elif subcmd == "clear": if sname: if s: time = es.getargv(3) if time == "0": time = None s.clear(time) else: es.dbgmsg(0, "Setting clear: No such setting: " + sname) else: es.dbgmsg(0, "Syntax: setting clear <settingname>") elif subcmd == "getsettings": if argc == 4: retvar = es.getargv(2) sname = es.getargv(3) if argc == 5: option = int(es.getargv(4)) else: option = None es.set(retvar, int(settinglib.getsettings(sname, option))) else: es.dbgmsg( 0, "Syntax: setting getsettings <var> <settingname> [option#]") elif subcmd == "gettimeleft": if argc == 4: retvar = es.getargv(2) sname = es.getargv(3) es.set(retvar, int(settinglib.gettimeleft(sname))) else: es.dbgmsg(0, "Syntax: setting gettimeleft <var> <settingname>") elif (subcmd == "setdescription") or (subcmd == "settitle"): if argc == 4: if s: descr = str(es.getargv(3)) s.setdescription(descr) else: es.dbgmsg(0, "Setting setdescription: No such setting: " + sname) else: es.dbgmsg( 0, "Syntax: setting setdescription <settingname> \"<description>\"" ) elif subcmd == "setoption": if argc >= 5: if s: option = es.getargv(3) text = str(es.getargv(4)) if es.getargv(5): state = bool(int(es.getargv(5))) else: state = False s.setoption(option, text, state) else: es.dbgmsg(0, "Setting setoption: No such setting: " + sname) else: es.dbgmsg( 0, "Syntax: setting setoption <settingname> <option-key> <option-name> [1/0]" ) elif subcmd == "addoption": if argc >= 5: if s: option = es.getargv(3) text = str(es.getargv(4)) if es.getargv(5): state = bool(int(es.getargv(5))) else: state = False s.addoption(option, text, state) else: es.dbgmsg(0, "Setting addoption: No such setting: " + sname) else: es.dbgmsg( 0, "Syntax: setting addoption <settingname> <option-key> <option-name> [1/0]" ) elif (subcmd == "deloption") or (subcmd == "remoption"): if argc == 4: if s: option = es.getargv(3) s.deloption(option) else: es.dbgmsg(0, "Setting deloption: No such setting: " + sname) else: es.dbgmsg(0, "Syntax: setting deloption <settingname> <option-key>") elif subcmd == "clearoption": if sname: if s: s.clearoption() else: es.dbgmsg(0, "Setting clearoption: No such setting: " + sname) else: es.dbgmsg(0, "Syntax: setting clearoption <settingname>") elif subcmd == "addsound": if argc == 4: if s: sound = es.getargv(3) s.addsound(sound) else: es.dbgmsg(0, "Setting addsound: No such setting: " + sname) else: es.dbgmsg(0, "Syntax: setting addsound <settingname> <sound-path>") elif (subcmd == "delsound") or (subcmd == "remsound"): if sname: if s: s.delsound() else: es.dbgmsg(0, "Setting delsound: No such setting: " + sname) else: es.dbgmsg(0, "Syntax: setting delsound <settingname>") elif subcmd == "send": if argc >= 4: if s: users = es.getargv(3) if es.getargv(4): locked = bool(int(es.getargv(4))) else: locked = False s.send(playerlib.getUseridList(users), False, locked) else: es.dbgmsg(0, "Setting send: No such setting: " + sname) else: es.dbgmsg(0, "Syntax: setting send <settingname> <users> [locked]") elif subcmd == "sendglobal": if argc >= 4: if s: users = es.getargv(3) if es.getargv(4): locked = bool(int(es.getargv(4))) else: locked = False s.sendglobal(playerlib.getUseridList(users), False, locked) else: es.dbgmsg(0, "Setting send: No such setting: " + sname) else: es.dbgmsg(0, "Syntax: setting send <settingname> <users> [locked]") elif subcmd == "resend": if argc == 4: if s: try: s.resend = bool(int(es.getargv(3))) except ValueError: s.resend = False else: es.dbgmsg(0, "Setting resend: No such setting: " + sname) else: es.dbgmsg(0, "Syntax: setting resend <settingname> <0/1>") elif subcmd == "backmenu": if argc == 4: if s: s.backmenu(es.getargv(3)) else: es.dbgmsg(0, "No such setting: " + sname) else: es.dbgmsg( 0, "Syntax: setting backmenu <settingname> <keymenu/popup>") elif subcmd == "setvar": if argc >= 5: if s: varp = es.getargv(3) varv = es.getargv(4) if es.getargv(5): userid = int(es.getargv(5)) else: userid = None if varp.isalnum(): s.setvar(varp, varv) else: es.dbgmsg(0, "Invalid setting variable name") else: es.dbgmsg(0, "Setting setvar: No such setting: " + sname) else: es.dbgmsg( 0, "Syntax: setting setvar <settingname> <variable> <value> [userid]" ) elif subcmd == "getvar": if argc >= 5: sname = es.getargv(3) if sname in settinglib.gSettings: s = settinglib.gSettings[sname] else: s = None if s: varp = es.getargv(2) varv = es.getargv(4) if es.getargv(5): userid = int(es.getargv(5)) else: userid = None if varv.isalnum(): es.set(varp, s.getvar(varv, userid)) else: es.dbgmsg(0, "Invalid setting variable name") else: es.dbgmsg(0, "Setting getvar: No such setting: " + sname) else: es.dbgmsg( 0, "Syntax: setting getvar <var> <settingname> <variable> [userid]" ) elif subcmd == "setdefault": if argc >= 4: if s: if s.keyvalues["config"]["type"] == "list": option = es.getargv(3) if es.getargv(4): overwrite = bool(int(es.getargv(4))) else: overwrite = False s.setdefault(option, overwrite) elif s.keyvalues["config"]["type"] == "toggle": option = es.getargv(3) state = bool(int(es.getargv(4))) if es.getargv(5): overwrite = bool(int(es.getargv(5))) else: overwrite = False s.setdefault(option, state, overwrite) else: es.dbgmsg(0, "Setting setdefault: No such setting: " + sname) else: es.dbgmsg( 0, "Syntax list: setting setdefault <settingname> <option-key> [overwrite]" ) es.dbgmsg( 0, "Syntax toggle: setting setdefault <settingname> <option-key> <1/0> [overwrite]" ) elif subcmd == "get": if argc >= 4: retvar = es.getargv(2) sname = es.getargv(3) if sname in settinglib.gSettings: s = settinglib.gSettings[sname] else: s = None if s: if s.keyvalues["config"]["type"] == "list": if es.getargv(4): userid = int(es.getargv(4)) else: userid = None es.set(retvar, s.get(userid)) elif s.keyvalues["config"]["type"] == "toggle": option = es.getargv(4) if es.getargv(5): userid = int(es.getargv(5)) else: userid = None es.set(retvar, s.get(option, userid)) else: es.dbgmsg(0, "Setting get: No such setting: " + sname) else: es.dbgmsg( 0, "Syntax list: setting get <return-var> <settingname> [userid]") es.dbgmsg( 0, "Syntax toggle: setting get <return-var> <settingname> <option-key> [userid]" ) elif subcmd == "set": if argc >= 4: if s: if s.keyvalues["config"]["type"] == "list": option = es.getargv(3) if es.getargv(4): userid = int(es.getargv(4)) else: userid = None s.set(option, userid) elif s.keyvalues["config"]["type"] == "toggle": option = es.getargv(3) state = bool(int(es.getargv(4))) if es.getargv(5): userid = int(es.getargv(5)) else: userid = None s.set(option, state, userid) else: es.dbgmsg(0, "Setting set: No such setting: " + sname) else: es.dbgmsg( 0, "Syntax list: setting set <settingname> <option-key> [userid]") es.dbgmsg( 0, "Syntax toggle: setting set <settingname> <option-key> <1/0> [userid]" ) elif subcmd == "toggle": if argc >= 4: if s: if s.keyvalues["config"]["type"] == "toggle": option = es.getargv(3) if es.getargv(4): userid = int(es.getargv(4)) else: userid = None s.toggle(option, userid) else: es.dbgmsg( 0, "Setting toggle: No toggle-type setting: " + sname) else: es.dbgmsg(0, "Setting toggle: No such setting: " + sname) else: es.dbgmsg( 0, "Syntax: setting toggle <settingname> <option-key> [userid]") elif subcmd == "save": settinglib._saveAll() elif subcmd == "list": es.dbgmsg(0, "---------- List of settings:") if argc == 2: listlevel = 0 else: listlevel = int(sname) for sname in settinglib.gSettings: s = settinglib.gSettings[sname] s.information(listlevel) if argc == 2: es.dbgmsg(0, " ") es.dbgmsg(0, "For more details, supply list level (0-2):") es.dbgmsg(0, "Syntax: setting list [level]") es.dbgmsg(0, "----------") elif subcmd == "info": if argc >= 3: if argc == 4: listlevel = int(es.getargv(3)) else: listlevel = 2 if v: s.information(listlevel) else: es.dbgmsg(0, "Syntax: setting info <settingname> [level]") else: es.dbgmsg( 0, "Invalid setting subcommand, see http://www.eventscripts.com/pages/Setting/ for help" )
def consolecmd(): #Command from server console or non-python script subcmd = es.getargv(1).lower() sname = es.getargv(2) argc = es.getargc() if sname in settinglib.gSettings: s = settinglib.gSettings[sname] else: s = None if subcmd == "create": if sname: descr = es.getargv(3) stype = es.getargv(4) if stype == "0": stype = None settinglib.create(sname,descr,stype) else: es.dbgmsg(0,"Syntax: setting create <settingname> \"<description>\" [type]") elif subcmd == "delete": if sname: if s: settinglib.delete(sname) else: es.dbgmsg(0,"Setting delete: No such setting: "+sname) else: es.dbgmsg(0,"Syntax: setting delete <settingname>") elif subcmd == "exists": if argc == 4: retvar = es.getargv(2) sname = es.getargv(3) es.set(retvar,int(settinglib.exists(sname))) else: es.dbgmsg(0,"Syntax: setting exists <var> <settingname>") elif subcmd == "clear": if sname: if s: time = es.getargv(3) if time == "0": time = None s.clear(time) else: es.dbgmsg(0,"Setting clear: No such setting: "+sname) else: es.dbgmsg(0,"Syntax: setting clear <settingname>") elif subcmd == "getsettings": if argc == 4: retvar = es.getargv(2) sname = es.getargv(3) if argc == 5: option = int(es.getargv(4)) else: option = None es.set(retvar,int(settinglib.getsettings(sname,option))) else: es.dbgmsg(0,"Syntax: setting getsettings <var> <settingname> [option#]") elif subcmd == "gettimeleft": if argc == 4: retvar = es.getargv(2) sname = es.getargv(3) es.set(retvar,int(settinglib.gettimeleft(sname))) else: es.dbgmsg(0,"Syntax: setting gettimeleft <var> <settingname>") elif (subcmd == "setdescription") or (subcmd == "settitle"): if argc == 4: if s: descr = str(es.getargv(3)) s.setdescription(descr) else: es.dbgmsg(0,"Setting setdescription: No such setting: "+sname) else: es.dbgmsg(0,"Syntax: setting setdescription <settingname> \"<description>\"") elif subcmd == "setoption": if argc >= 5: if s: option = es.getargv(3) text = str(es.getargv(4)) if es.getargv(5): state = bool(int(es.getargv(5))) else: state = False s.setoption(option,text,state) else: es.dbgmsg(0,"Setting setoption: No such setting: "+sname) else: es.dbgmsg(0,"Syntax: setting setoption <settingname> <option-key> <option-name> [1/0]") elif subcmd == "addoption": if argc >= 5: if s: option = es.getargv(3) text = str(es.getargv(4)) if es.getargv(5): state = bool(int(es.getargv(5))) else: state = False s.addoption(option,text,state) else: es.dbgmsg(0,"Setting addoption: No such setting: "+sname) else: es.dbgmsg(0,"Syntax: setting addoption <settingname> <option-key> <option-name> [1/0]") elif (subcmd == "deloption") or (subcmd == "remoption"): if argc == 4: if s: option = es.getargv(3) s.deloption(option) else: es.dbgmsg(0,"Setting deloption: No such setting: "+sname) else: es.dbgmsg(0,"Syntax: setting deloption <settingname> <option-key>") elif subcmd == "clearoption": if sname: if s: s.clearoption() else: es.dbgmsg(0,"Setting clearoption: No such setting: "+sname) else: es.dbgmsg(0,"Syntax: setting clearoption <settingname>") elif subcmd == "addsound": if argc == 4: if s: sound = es.getargv(3) s.addsound(sound) else: es.dbgmsg(0,"Setting addsound: No such setting: "+sname) else: es.dbgmsg(0,"Syntax: setting addsound <settingname> <sound-path>") elif (subcmd == "delsound") or (subcmd == "remsound"): if sname: if s: s.delsound() else: es.dbgmsg(0,"Setting delsound: No such setting: "+sname) else: es.dbgmsg(0,"Syntax: setting delsound <settingname>") elif subcmd == "send": if argc >= 4: if s: users = es.getargv(3) if es.getargv(4): locked = bool(int(es.getargv(4))) else: locked = False s.send(playerlib.getUseridList(users),False,locked) else: es.dbgmsg(0,"Setting send: No such setting: "+sname) else: es.dbgmsg(0,"Syntax: setting send <settingname> <users> [locked]") elif subcmd == "sendglobal": if argc >= 4: if s: users = es.getargv(3) if es.getargv(4): locked = bool(int(es.getargv(4))) else: locked = False s.sendglobal(playerlib.getUseridList(users),False,locked) else: es.dbgmsg(0,"Setting send: No such setting: "+sname) else: es.dbgmsg(0,"Syntax: setting send <settingname> <users> [locked]") elif subcmd == "resend": if argc == 4: if s: try: s.resend = bool(int(es.getargv(3))) except ValueError: s.resend = False else: es.dbgmsg(0,"Setting resend: No such setting: "+sname) else: es.dbgmsg(0,"Syntax: setting resend <settingname> <0/1>") elif subcmd == "backmenu": if argc == 4: if s: s.backmenu(es.getargv(3)) else: es.dbgmsg(0,"No such setting: "+sname) else: es.dbgmsg(0,"Syntax: setting backmenu <settingname> <keymenu/popup>") elif subcmd == "setvar": if argc >= 5: if s: varp = es.getargv(3) varv = es.getargv(4) if es.getargv(5): userid = int(es.getargv(5)) else: userid = None if varp.isalnum(): s.setvar(varp, varv) else: es.dbgmsg(0,"Invalid setting variable name") else: es.dbgmsg(0,"Setting setvar: No such setting: "+sname) else: es.dbgmsg(0,"Syntax: setting setvar <settingname> <variable> <value> [userid]") elif subcmd == "getvar": if argc >= 5: sname = es.getargv(3) if sname in settinglib.gSettings: s = settinglib.gSettings[sname] else: s = None if s: varp = es.getargv(2) varv = es.getargv(4) if es.getargv(5): userid = int(es.getargv(5)) else: userid = None if varv.isalnum(): es.set(varp, s.getvar(varv, userid)) else: es.dbgmsg(0,"Invalid setting variable name") else: es.dbgmsg(0,"Setting getvar: No such setting: "+sname) else: es.dbgmsg(0,"Syntax: setting getvar <var> <settingname> <variable> [userid]") elif subcmd == "setdefault": if argc >= 4: if s: if s.keyvalues["config"]["type"] == "list": option = es.getargv(3) if es.getargv(4): overwrite = bool(int(es.getargv(4))) else: overwrite = False s.setdefault(option,overwrite) elif s.keyvalues["config"]["type"] == "toggle": option = es.getargv(3) state = bool(int(es.getargv(4))) if es.getargv(5): overwrite = bool(int(es.getargv(5))) else: overwrite = False s.setdefault(option,state,overwrite) else: es.dbgmsg(0,"Setting setdefault: No such setting: "+sname) else: es.dbgmsg(0,"Syntax list: setting setdefault <settingname> <option-key> [overwrite]") es.dbgmsg(0,"Syntax toggle: setting setdefault <settingname> <option-key> <1/0> [overwrite]") elif subcmd == "get": if argc >= 4: retvar = es.getargv(2) sname = es.getargv(3) if sname in settinglib.gSettings: s = settinglib.gSettings[sname] else: s = None if s: if s.keyvalues["config"]["type"] == "list": if es.getargv(4): userid = int(es.getargv(4)) else: userid = None es.set(retvar,s.get(userid)) elif s.keyvalues["config"]["type"] == "toggle": option = es.getargv(4) if es.getargv(5): userid = int(es.getargv(5)) else: userid = None es.set(retvar,s.get(option,userid)) else: es.dbgmsg(0,"Setting get: No such setting: "+sname) else: es.dbgmsg(0,"Syntax list: setting get <return-var> <settingname> [userid]") es.dbgmsg(0,"Syntax toggle: setting get <return-var> <settingname> <option-key> [userid]") elif subcmd == "set": if argc >= 4: if s: if s.keyvalues["config"]["type"] == "list": option = es.getargv(3) if es.getargv(4): userid = int(es.getargv(4)) else: userid = None s.set(option,userid) elif s.keyvalues["config"]["type"] == "toggle": option = es.getargv(3) state = bool(int(es.getargv(4))) if es.getargv(5): userid = int(es.getargv(5)) else: userid = None s.set(option,state,userid) else: es.dbgmsg(0,"Setting set: No such setting: "+sname) else: es.dbgmsg(0,"Syntax list: setting set <settingname> <option-key> [userid]") es.dbgmsg(0,"Syntax toggle: setting set <settingname> <option-key> <1/0> [userid]") elif subcmd == "toggle": if argc >= 4: if s: if s.keyvalues["config"]["type"] == "toggle": option = es.getargv(3) if es.getargv(4): userid = int(es.getargv(4)) else: userid = None s.toggle(option,userid) else: es.dbgmsg(0,"Setting toggle: No toggle-type setting: "+sname) else: es.dbgmsg(0,"Setting toggle: No such setting: "+sname) else: es.dbgmsg(0,"Syntax: setting toggle <settingname> <option-key> [userid]") elif subcmd == "save": settinglib._saveAll() elif subcmd == "list": es.dbgmsg(0,"---------- List of settings:") if argc == 2: listlevel = 0 else: listlevel = int(sname) for sname in settinglib.gSettings: s = settinglib.gSettings[sname] s.information(listlevel) if argc == 2: es.dbgmsg(0, " ") es.dbgmsg(0, "For more details, supply list level (0-2):") es.dbgmsg(0, "Syntax: setting list [level]") es.dbgmsg(0,"----------") elif subcmd == "info": if argc >= 3: if argc == 4: listlevel = int(es.getargv(3)) else: listlevel = 2 if v: s.information(listlevel) else: es.dbgmsg(0, "Syntax: setting info <settingname> [level]") else: es.dbgmsg(0,"Invalid setting subcommand, see http://www.eventscripts.com/pages/Setting/ for help")
def cmdtest_run(): es.set("cmdtest_pass", es.getargv(1)) #print "cmdtest(), args: %s, argc: %d" % (es.getargs(), es.getargc()) if es.getargc() != 2: print "cmdtest0_failed,", es.getargc() es.doblock("pyunittest/cmdtest_block")