class Bobby
Public Class Methods
new(options)
click to toggle source
# File lib/bobby-b/bobby.rb, line 6 def initialize(options) @queue = [] @last_message_time = 0 @cooldown = 0.5 @discord_token = options.api_key @responses = File.readlines(options.responses_file) end
Public Instance Methods
process_queue()
click to toggle source
# File lib/bobby-b/bobby.rb, line 36 def process_queue now = Time.now.to_f return if @queue.empty? || now - @last_message_time < @cooldown send_newest_message @last_message_time = now end
send_newest_message()
click to toggle source
# File lib/bobby-b/bobby.rb, line 29 def send_newest_message response = @responses.sample event = @queue.pop event.respond(response) puts "Responded with #{response}" end
start()
click to toggle source
# File lib/bobby-b/bobby.rb, line 14 def start start_queue start_bot end
start_bot()
click to toggle source
# File lib/bobby-b/bobby.rb, line 19 def start_bot bot = Discordrb::Bot.new token: @discord_token bot.message do |event| @queue.unshift(event) if event.message.to_s.include? bot.bot_user.id.to_s end bot.run end
start_queue()
click to toggle source
# File lib/bobby-b/bobby.rb, line 44 def start_queue Thread.new do puts 'Message queue started' loop do sleep 0.1 process_queue end end end