示例#1
0
文件: rcon.py 项目: LDMBatman/pyarc
        def delayed_message(minutes,message=""):
            if minutes == 60:
                cls.broadcast(Lang.get('restart_default').format('60 minutes',message), cls.response_callback_response_only)
                time.sleep(30*60)
                minutes = 30

            if minutes == 30:
                cls.broadcast(Lang.get('restart_default').format('30 minutes',message), cls.response_callback_response_only)
                time.sleep(20*60)
                minutes = 10

            if minutes == 10:
                cls.broadcast(Lang.get('restart_default').format('10 minutes',message), cls.response_callback_response_only)
                time.sleep(5*60)

            cls.broadcast(Lang.get('restart_default').format('5 minutes',message), cls.response_callback_response_only)
            time.sleep(4*60)

            cls.broadcast(Lang.get('restart_default').format('60 seconds',message), cls.response_callback_response_only)
            time.sleep(50)

            cls.broadcast(Lang.get('restart_default').format('10 seconds',message), cls.response_callback_response_only)
            time.sleep(10)

            Storage.restart_timestamp = None
            ServerControl.restart_server()
示例#2
0
文件: rcon.py 项目: f4ble/pyarc
    def callback_restart(cls,*args):
        """ Callback for broadcast on immediate restarts

        Broadcast does not happen if you restart immedietly
        """
        out('Issuing IMMEDIDATE server restart')
        ServerControl.restart_server()
示例#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 delayed_message(minutes, message=""):
            if minutes == 60:
                cls.broadcast(
                    Lang.get('restart_default').format('60 minutes', message),
                    cls.response_callback_response_only)
                time.sleep(30 * 60)
                minutes = 30

            if minutes == 30:
                cls.broadcast(
                    Lang.get('restart_default').format('30 minutes', message),
                    cls.response_callback_response_only)
                time.sleep(20 * 60)
                minutes = 10

            if minutes == 10:
                cls.broadcast(
                    Lang.get('restart_default').format('10 minutes', message),
                    cls.response_callback_response_only)
                time.sleep(5 * 60)

            cls.broadcast(
                Lang.get('restart_default').format('5 minutes', message),
                cls.response_callback_response_only)
            time.sleep(4 * 60)

            cls.broadcast(
                Lang.get('restart_default').format('60 seconds', message),
                cls.response_callback_response_only)
            time.sleep(50)

            cls.broadcast(
                Lang.get('restart_default').format('10 seconds', message),
                cls.response_callback_response_only)
            time.sleep(10)

            Storage.restart_timestamp = None
            ServerControl.restart_server()