Skip to content

Commit

Permalink
Deal with first idiotic nickname
Browse files Browse the repository at this point in the history
  • Loading branch information
Arie committed May 16, 2020
1 parent 95981ab commit 2132ce5
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 2 deletions.
4 changes: 4 additions & 0 deletions app/models/reservation_player.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,8 @@ class ReservationPlayer < ActiveRecord::Base

geocoded_by :ip
before_save :geocode, if: :ip_changed?

def self.idiotic_name?(name)
name.include?("﷽")
end
end
9 changes: 8 additions & 1 deletion app/services/server_metric.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@ def save_player_statistics
parser.players.each do |player|
next unless player.relevant?

rp = ReservationPlayer.where(reservation: current_reservation, steam_uid: player.steam_uid).first_or_create(name: player.name, ip: player.ip)
name = sanitize_name(player.name)
rp = ReservationPlayer.where(reservation: current_reservation, steam_uid: player.steam_uid).first_or_create(name: name, ip: player.ip)
PlayerStatistic.create!(reservation_player: rp,
ping: player.ping,
loss: player.loss,
Expand All @@ -51,4 +52,10 @@ def number_of_players
def players_playing?
number_of_players > 0
end

def sanitize_name(name)
return "idiot" if ReservationPlayer.idiotic_name?(name)

name
end
end
22 changes: 21 additions & 1 deletion app/workers/update_steam_nickname_worker.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,30 @@ def perform(steam_uid)
@steam_uid = steam_uid
begin
nickname = SteamCondenser::Community::SteamId.new(steam_uid.to_i).nickname
User.find_by(uid: steam_uid).update(nickname: nickname, name: nickname)
if ReservationPlayer.idiotic_name?(nickname)
ban_idiot(steam_uid)
rename_user(steam_uid)
else
User.find_by(uid: steam_uid).update(nickname: nickname, name: nickname)
end
rescue SteamCondenser::Error => exception
Rails.logger.info "Couldn't query Steam community: #{exception}"
end
end
end

def idiot?(nickname)
nickname.include?("﷽")
end

def ban_idiot(steam_uid)
uid3 = SteamCondenser::Community::SteamId.community_id_to_steam_id3(steam_uid.to_i)
Server.active.each do |s|
s.rcon_exec "banid 0 #{uid3} kick"
end
end

def rename_user(steam_uid)
User.find_by_uid(steam_uid)&.update(nickname: "idiot", name: "idiot")
end
end

0 comments on commit 2132ce5

Please sign in to comment.