Пример #1
0
    def players_connected(cls, player_list):
        Db.update_last_seen(player_list.keys())
        if len(player_list) > 1:
            out("** Connected: [{} online]".format(len(player_list)))
            for steam_id, name in player_list.items():
                player_name = Storage.players_online_player_name[steam_id]

                if Rcon.is_admin(steam_id=steam_id):
                    out("\t{} {} ({}) ADMIN".format(name.ljust(30),
                                                    player_name.ljust(30),
                                                    steam_id))
                else:
                    out("\t{} {} ({})".format(name.ljust(30),
                                              player_name.ljust(30), steam_id))
        elif len(player_list) == 1:
            for steam_id in player_list:
                player_name = Storage.players_online_player_name[steam_id]
                if Rcon.is_admin(steam_id=steam_id):
                    out("** Connected: {} {} ({}) ADMIN".format(
                        player_list[steam_id], player_name.ljust(30),
                        steam_id))
                else:
                    out("** Connected: {} {} ({})".format(
                        player_list[steam_id], player_name.ljust(30),
                        steam_id))
Пример #2
0
 def players_disconnected(cls,player_list):
     Db.update_last_seen(player_list.keys())
     if len(player_list) > 1:
         out("** Disconnected: [{} online]".format(len(player_list)))
         for steam_id, name in player_list.items():
             if Rcon.is_admin(steam_id=steam_id):
                 out("\t{} ({}) ADMIN".format(name.ljust(25),steam_id))
             else:
                 out("\t{} ({})".format(name.ljust(25),steam_id))
     elif len(player_list) == 1:
         for steam_id,name in player_list.items():
             if Rcon.is_admin(steam_id=steam_id):
                 out("** Disconnected: {} ({}) ADMIN".format(name,steam_id))
             else:
                 out("** Disconnected: {} ({})".format(name,steam_id))
Пример #3
0
 def players_disconnected(cls, player_list):
     Db.update_last_seen(player_list.keys())
     if len(player_list) > 1:
         out("** Disconnected: [{} online]".format(len(player_list)))
         for steam_id, name in player_list.items():
             if Rcon.is_admin(steam_id=steam_id):
                 out("\t{} ({}) ADMIN".format(name.ljust(25), steam_id))
             else:
                 out("\t{} ({})".format(name.ljust(25), steam_id))
     elif len(player_list) == 1:
         for steam_id, name in player_list.items():
             if Rcon.is_admin(steam_id=steam_id):
                 out("** Disconnected: {} ({}) ADMIN".format(
                     name, steam_id))
             else:
                 out("** Disconnected: {} ({})".format(name, steam_id))
Пример #4
0
    def players_connected(cls,player_list):
        Db.update_last_seen(player_list.keys())
        if len(player_list) > 1:
            out("** Connected: [{} online]".format(len(player_list)))
            for steam_id,name in player_list.items():
                player_name = Storage.players_online_player_name[steam_id]

                if Rcon.is_admin(steam_id=steam_id):
                    out("\t{} {} ({}) ADMIN".format(name.ljust(30), player_name.ljust(30), steam_id))
                else:
                    out("\t{} {} ({})".format(name.ljust(30), player_name.ljust(30), steam_id))
        elif len(player_list) == 1:
            for steam_id in player_list:
                player_name = Storage.players_online_player_name[steam_id]
                if Rcon.is_admin(steam_id=steam_id):
                    out("** Connected: {} {} ({}) ADMIN".format(player_list[steam_id], player_name.ljust(30), steam_id))
                else:
                    out("** Connected: {} {} ({})".format(player_list[steam_id], player_name.ljust(30), steam_id))
Пример #5
0
 def admin_check_version(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:
         Rcon.message_steam_name(steam_name,Lang.get('new_version'))
         return True
     else:
         Rcon.message_steam_name(steam_name,Lang.get('no_new_version'))
         return False
Пример #6
0
    def welcome_message(cls,player_list):
        if cls.first_list_players: #Don't message people when rcon starts. Message when they log on.
            cls.first_list_players = False
            return

        response = 'Welcome to Clash.gg PVP Server.\nAvailable chat commands: !help, !lastseen, !online, !next_restart'
        response_admin = 'Hello admin!'

        for steam_id in player_list:
            if Rcon.is_admin(steam_id=steam_id):
                Rcon.message_steam_id(steam_id,response_admin,Rcon.none_response_callback,echo=False)
            else:
                Rcon.message_steam_id(steam_id,response,Rcon.none_response_callback,echo=False)
Пример #7
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
Пример #8
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
Пример #9
0
 def admin_start_survey(steam_name,player_name,text):
     if not Rcon.is_admin(steam_name=steam_name):
         out(Lang.get('unauthorized'), text)
         return False
     regex=re.compile('!admin_start_survey (?P<id_survey>[0-9]+)',re.IGNORECASE)
     matches = regex.search(text)
     if matches is None:
         Rcon.message_steam_name(steam_name,Lang.get('survey_start_noid'))
         return False
     id_survey=matches.group('id_survey')
     result=False
     result=Db.start_survey(id_survey)
     if result is True:
         Rcon.message_steam_name(steam_name,Lang.get('survey_start_ok').format(id_survey,id_survey))
     else:
         Rcon.message_steam_name(steam_name,Lang.get('survey_start_error').format(id_survey))
Пример #10
0
 def admin_survey_add(steam_name,player_name,text):
     if not Rcon.is_admin(steam_name=steam_name):
         out(Lang.get('unauthorized'), text)
         return False
     regex=re.compile('!admin_survey_add (?P<question>[a-zA-Z0-9 ?]+)',re.IGNORECASE)
     matches = regex.search(text)
     if matches is None:
         Rcon.message_steam_name(steam_name,Lang.get('survey_no_question'))
         return False
     question=matches.group('question')
     result = None
     result = Db.add_survey(question)
     if result is not None:
         Rcon.message_steam_name(steam_name,Lang.get('survey_created').format(result,result))
     else:
         Rcon.message_steam_name(steam_name,Lang.get('survey_add_error'))
Пример #11
0
    def welcome_message(cls, player_list):
        if cls.first_list_players:  #Don't message people when rcon starts. Message when they log on.
            cls.first_list_players = False
            return

        response = 'Welcome to Clash.gg PVP Server.\nAvailable chat commands: !help, !lastseen, !online, !next_restart'
        response_admin = 'Hello admin!'

        for steam_id in player_list:
            if Rcon.is_admin(steam_id=steam_id):
                Rcon.message_steam_id(steam_id,
                                      response_admin,
                                      Rcon.none_response_callback,
                                      echo=False)
            else:
                Rcon.message_steam_id(steam_id,
                                      response,
                                      Rcon.none_response_callback,
                                      echo=False)
Пример #12
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
Пример #13
0
 def admin_filter_remove(steam_name,player_name,text):
     if not Rcon.is_admin(steam_name=steam_name):
         out(Lang.get('unauthorized'), text)
         return False
     regex =  re.compile('!admin_filter_remove (?P<words>[a-z ]+)',re.IGNORECASE)
     matches = regex.search(text)
     if matches is None:
         Rcon.message_steam_name(steam_name,Lang.get('chat_filter_remove_no_word'))
         return False
     words = matches.group('words')
     words = words.split()
     result=None
     for word in words:
         res = Db.remove_word(word)
         if res is False:
             res = Lang.get('chat_filter_remove_word_does_not_exists').format(word)
         else:
             res = Lang.get('unauthorized').format(word)
         if result is None:
             result = Lang.get('chat_filter_result').format(res)
         else:
             result = "{}, {}".format(result,res)
     Rcon.message_steam_name(steam_name,result)