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