Module: Utils::FlagFloodProtection
- Defined in:
- lib/erasmus/utils.rb
Class Method Summary collapse
Class Method Details
.extended(obj) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/erasmus/utils.rb', line 27 def self.extended(obj) obj.instance_eval { @userMessages = Hash.new(Queue.new) @blacklists << lambda { |user| @userMessages[user] << Time.now # don't allow messages from users who have sent # 5 messages in 15 seconds if @userMessages[user].length > 4 \ and Time.now - @userMessages[user].pop < 15 say("#{user} is flooding!") raise Erasmus::NotAllowedException end } } end |