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