示例#1
0
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>")
示例#2
0
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)
示例#3
0
 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())))
示例#4
0
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)
示例#5
0
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>")
示例#6
0
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]'})
示例#7
0
 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>")
示例#9
0
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>")
示例#10
0
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
示例#11
0
def saferemove_cmd():
    """
   xa_restrict_saferemove <index>
   """
    if es.getargc() == 2:
        saferemove(es.getargv(1))

    else:
        es.dbgmsg(0, 'Syntax: xa_restrict_saferemove <index>')
示例#12
0
def saferemove_cmd():
    """
   xa_restrict_saferemove <index>
   """
    if es.getargc() == 2:
        saferemove(es.getargv(1))

    else:
        es.dbgmsg(0, "Syntax: xa_restrict_saferemove <index>")
示例#13
0
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])
示例#14
0
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)
示例#15
0
 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()
示例#16
0
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)
示例#17
0
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)
示例#18
0
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])
示例#19
0
 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)
示例#20
0
 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)
示例#21
0
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()
示例#22
0
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)
示例#23
0
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]'
        )
示例#24
0
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()
示例#25
0
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()
示例#26
0
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()
示例#27
0
 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)
示例#28
0
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>")
示例#29
0
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>')
示例#30
0
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]")
示例#31
0
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]')
示例#32
0
 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)
示例#33
0
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>')
示例#34
0
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)
示例#35
0
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>")
示例#36
0
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"
        )
示例#38
0
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")
示例#39
0
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>")
示例#40
0
import es
示例#41
0
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)
示例#42
0
 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")
示例#44
0
def evaluate(args_dummy):
    global srcdsargs
    srcdsargs = []
    for arg in range(1, es.getargc()):
        srcdsargs.append(es.getargv(arg))
    srcdsargs = tuple(srcdsargs)
示例#45
0
 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()
示例#46
0
def evaluate(args_dummy):
    global srcdsargs
    srcdsargs = []
    for arg in range(1, es.getargc()):
        srcdsargs.append(es.getargv(arg))
    srcdsargs = tuple(srcdsargs)
示例#47
0
 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()
示例#48
0
import es
示例#49
0
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")
示例#50
0
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"
        )
示例#51
0
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")
示例#52
0
import es
示例#53
0
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")