29 lines
598 B
Ruby
29 lines
598 B
Ruby
|
require_relative './ika'
|
||
|
|
||
|
class DiscordHandler < Ika
|
||
|
attr_reader :bot
|
||
|
|
||
|
def initialize(bot:)
|
||
|
super()
|
||
|
@bot = bot
|
||
|
end
|
||
|
|
||
|
def start!
|
||
|
bot.remove_handler @message_handler if @message_handler
|
||
|
|
||
|
@message_handler = bot.message do |message_event|
|
||
|
handle_message Message::Discord.new(responder(message_event.channel), message_event.message)
|
||
|
end
|
||
|
|
||
|
bot.run # you can run this in the background, idk
|
||
|
end
|
||
|
|
||
|
def stop!
|
||
|
bot.remove_handler @message_handler if @message_handler
|
||
|
end
|
||
|
|
||
|
def responder(channel)
|
||
|
lambda { |response| channel.send_message(response) }
|
||
|
end
|
||
|
end
|