def ban_if_blacklisted(rcon: RecordedRcon, steam_id_64, name): with enter_session() as sess: player = get_player(sess, steam_id_64) if not player: logger.error("Can't check blacklist, player not found %s", steam_id_64) return if player.blacklist and player.blacklist.is_blacklisted: try: logger.info("Player %s was banned due blacklist, reason: %s", str(name), player.blacklist.reason) rcon.do_perma_ban(player=name, reason=player.blacklist.reason, by=f"BLACKLIST: {player.blacklist.by}") safe_save_player_action(rcon=rcon, player_name=name, action_type="PERMABAN", reason=player.blacklist.reason, by=f"BLACKLIST: {player.blacklist.by}", steam_id_64=steam_id_64) try: send_to_discord_audit( f"`BLACKLIST` -> {dict_to_discord(dict(player=name, reason=player.blacklist.reason))}", "BLACKLIST") except: logger.error("Unable to send blacklist to audit log") except: send_to_discord_audit( "Failed to apply ban on blacklisted players, please check the logs and report the error", "ERROR")
def do_temp_ban(self, player, reason, by): res = super().do_temp_ban(player, reason) safe_save_player_action(rcon=self, player_name=player, action_type="TEMPBAN", reason=reason, by=by)
def do_kick(self, player, reason, by): res = super().do_kick(player, reason) safe_save_player_action(rcon=self, player_name=player, action_type="KICK", reason=reason, by=by) return res
def do_punish(self, player, reason, by): res = super().do_punish(player, reason) safe_save_player_action(rcon=self, player_name=player, action_type="PUNISH", reason=reason, by=by) return res
def do_switch_player_now(self, player, by): res = super().do_switch_player_now(player) safe_save_player_action(rcon=self, player_name=player, action_type="SWITCHTEAMNOW", reason='', by=by) return res
def do_perma_ban(self, player, reason, by): res = super().do_perma_ban(player, reason) safe_save_player_action(rcon=self, player_name=player, action_type="PERMABAN", reason=reason, by=by) try: info = self.get_player_info(player) add_player_to_blacklist(info['steam_id_64'], reason) except: logger.exception("Unable to blacklist") return res
def do_perma_ban(self, player=None, steam_id_64=None, reason="", by=""): res = super().do_perma_ban(player, steam_id_64, reason, admin_name=by) safe_save_player_action( rcon=self, player_name=player, action_type="PERMABAN", reason=reason, by=by, steam_id_64=steam_id_64 ) try: if not steam_id_64: info = self.get_player_info(player) steam_id_64 = info['steam_id_64'] # TODO add author add_player_to_blacklist(steam_id_64, reason, by=by) except: logger.exception("Unable to blacklist") return res
def do_temp_ban(self, player=None, steam_id_64=None, duration_hours=2, reason="", by=""): res = super().do_temp_ban(player, steam_id_64, duration_hours, reason, admin_name=by) safe_save_player_action(rcon=self, player_name=player, action_type="TEMPBAN", reason=reason, by=by) return res