class Kamisama::RespawnLimiter
Public Class Methods
new(respawn_limit, respawn_interval)
click to toggle source
# File lib/kamisama/respawn_limiter.rb, line 3 def initialize(respawn_limit, respawn_interval) @respawn_limit = respawn_limit @respawn_interval = respawn_interval @respawns = [] end
Public Instance Methods
calculate_respawn_count()
click to toggle source
# File lib/kamisama/respawn_limiter.rb, line 18 def calculate_respawn_count now = Time.now.to_i @respawns.count { |timestamp| timestamp > (now - @respawn_interval) } end
die_if_breached!()
click to toggle source
# File lib/kamisama/respawn_limiter.rb, line 24 def die_if_breached! respawn_count = calculate_respawn_count if respawn_count >= @respawn_limit puts "[Kamisama Master] Respawn count #{respawn_count} hit the limit of #{@respawn_limit} for the respawn interval of #{@respawn_interval} seconds." puts "[Kamisama Master] Terminating." exit(1) end end
record!()
click to toggle source
# File lib/kamisama/respawn_limiter.rb, line 10 def record! now = Time.now.to_i @respawns = @respawns.select { |timestamp| timestamp >= now - @respawn_interval } + [now] die_if_breached! end