49 lines
1.3 KiB
Ruby
49 lines
1.3 KiB
Ruby
|
require_relative './session'
|
||
|
require_relative './lesson'
|
||
|
|
||
|
class Ika
|
||
|
attr_reader :bot
|
||
|
attr_reader :lessons, :sessions
|
||
|
attr_accessor :current_lesson, :current_session
|
||
|
|
||
|
def initialize(bot)
|
||
|
@bot = bot
|
||
|
@lessons = {}
|
||
|
@sessions = {}
|
||
|
@current_session = nil
|
||
|
@current_lesson = Lesson.new
|
||
|
end
|
||
|
|
||
|
def start!
|
||
|
bot.remove_handler @message_handler if @message_handler
|
||
|
|
||
|
@message_handler = bot.message do |message|
|
||
|
handle_message message
|
||
|
end
|
||
|
|
||
|
bot.run # you can run this in the background, idk
|
||
|
end
|
||
|
|
||
|
def end!
|
||
|
bot.remove_handler @message_handler if @message_handler
|
||
|
end
|
||
|
|
||
|
def handle_message message
|
||
|
if message.message.content == "!init"
|
||
|
return message.respond("There's already a session running") unless current_session.nil?
|
||
|
|
||
|
return current_session = Session.new(message, event.message.author)
|
||
|
elsif message.message.content == "!lesson"
|
||
|
return message.respond("There's already a lesson running") if current_lesson.running?
|
||
|
|
||
|
message.respond("Starting a lesson now!")
|
||
|
return current_lesson.start!(message.channel)
|
||
|
elsif message.message.content == "!stoplesson"
|
||
|
return message.respond("There's no lesson running") unless current_lesson.running?
|
||
|
|
||
|
message.respond("Ending the current lesson!")
|
||
|
return current_lesson.stop!
|
||
|
end
|
||
|
end
|
||
|
end
|