Пример #1
0
 def admin_update_now(steam_name,player_name,text):
     if not Rcon.is_admin(steam_name=steam_name):
         out(Lang.get('unauthorized'), text)
         return False
     res, live_version, steam_version = ServerControl.new_version()
     if res is True:
         ServerControl.update_and_restart_server()
         Rcon.message_steam_name(steam_name,Lang.get('update_restart'))
         Rcon.broadcast(Lang.get('update_restart'), Rcon.response_callback_response_only)
         return True
     else:
         Rcon.message_steam_name(steam_name,Lang.get('no_new_version'))
         return False
Пример #2
0
 def filter_chat(cls,steam_name,player_name,text,line):
     words=text.split()
     res=None
     for word in words:
         if res is None:
             res=Db.check_mot(word)
     if res:
         player=Db.find_player(steam_name=steam_name)
         steamid=player.steam_id if player is not None else None
         if steamid is not None:
             """Rcon.kick_player(steamid)"""
             """msg=Lang.get('chat_filter_player_kicked').format(player_name,res)"""
             msg=Lang.get('chat_filter_forbidden_word').format(player_name,res)
             Rcon.broadcast(msg, rcon.response_callback_response_only)
Пример #3
0
    def parse(steam_name,player_name,text):
        #recipient = Db.find_player(player_name=player_name)
        cmd = ChatCommands._find_cmd(text)
        if cmd is False:
            debug_out(Lang.get('not_a_command').format(text),level=1)
            return False
        
        cmd = cmd.lower()
        debug_out('Processing chat command: ',cmd,level=1)
        if cmd == 'lastseen':
            ChatCommands.last_seen(steam_name,text)
            return True
        elif cmd == 'online':
            ChatCommands.list_online(steam_name)
            return True
        elif cmd == 'admin_restart':
            if not Rcon.is_admin(steam_name=steam_name):
                out(Lang.get('unauthorized'), cmd)
                return False

            if text.lower().strip() == '!admin_restart now':
                Rcon.message_steam_name(steam_name,Lang.get('issue_restart_now'))
                Rcon.broadcast(Lang.get('restarting'))
                ServerControl.restart_server()
                return True

            regex = re.compile('!admin_restart (?P<minutes>[\d]+)',re.IGNORECASE)
            matches = regex.search(text)
            if matches is None:
                Rcon.message_steam_name(steam_name,Lang.get('admin_restart_failed'))
                return False

            minutes = matches.group('minutes')

            result, err = Rcon.delayed_restart(minutes)
            if not result:
                Rcon.message_steam_name(steam_name,'ERROR: {}'.format(err))
                return False

            Rcon.message_steam_name(steam_name,Lang.get('issue_restart'))
            return True
        elif cmd == 'next_restart':
            seconds_left, str_countdown = Rcon.get_next_restart_string()
            response = 'Next restart: {}'.format(str_countdown)
            Rcon.message_steam_name(steam_name,response)
            return True
        elif cmd == 'help':
            Rcon.message_steam_name(steam_name,Lang.get('chat_help'))
            return True
        return False
Пример #4
0
 def quote(steam_name,player_name,text):
     regex =  re.compile('!quote (?P<id>[0-9]+)',re.IGNORECASE)
     matches = regex.search(text)
     if matches is None:
         Rcon.message_steam_name(steam_name,Lang.get('quote_error'))
         return False
     quote = matches.group('id')
     result = Db.find_quote(quote)
     if result is not None:
         msg = Lang.get('quote_ok').format(quote,result.created,result.name,result.data)
         Rcon.broadcast(msg, Rcon.response_callback_response_only)
         return True
     else:
         Rcon.message_steam_name(steam_name,Lang.get('quote_not_found').format(quote))
         return False
Пример #5
0
 def survey(steam_name,player_name,text):
     regex =  re.compile('!survey (?P<id>[0-9]+)',re.IGNORECASE)
     matches = regex.search(text)
     if matches is not None:
         result=Db.find_survey(matches.group('id'))
     else:
         result=Db.find_survey(None)
     if result is not None:
         options = Db.find_options(result.id)
         if options is not None:
             msg=Lang.get('survey_show').format(result.id,result.question,options,result.id,result.id)
         else:
             msg=Lang.get('survey_show_no_options').format(result.id,result.question)
         Rcon.broadcast(msg,Rcon.response_callback_response_only)
         return True
     else:
         msg=Lang.get('survey_no_found')
         Rcon.message_steam_name(steam_name,msg)
         return False
Пример #6
0
 def admin_restart(steam_name,player_name,text):
     if not Rcon.is_admin(steam_name=steam_name):
         out(Lang.get('unauthorized'), text)
         return False
     if text.lower().strip() == '!admin_restart now':
         Rcon.message_steam_name(steam_name,Lang.get('issue_restart_now'))
         Rcon.broadcast(Lang.get('restarting'),Rcon.callback_restart())
         return True
     regex = re.compile('!admin_restart (?P<minutes>[\d]+)',re.IGNORECASE)
     matches = regex.search(text)
     if matches is None:
         Rcon.message_steam_name(steam_name,Lang.get('admin_restart_failed'))
         return False
     minutes = matches.group('minutes')
     result, err = Rcon.delayed_restart(minutes)
     if not result:
         Rcon.message_steam_name(steam_name,'ERROR: {}'.format(err))
         return False
     Rcon.message_steam_name(steam_name,Lang.get('issue_restart'))
     return True