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()
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()
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
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()