ika_bot/lib/ika.rb

46 lines
976 B
Ruby
Raw Normal View History

2025-08-15 16:25:29 -04:00
require_relative './session'
2025-08-15 17:03:12 -04:00
require_relative './lesson'
require_relative './commands'
2025-08-23 14:38:42 -04:00
require_relative './message'
2025-08-19 21:07:51 -04:00
require_relative './drill_plugin'
2025-08-15 16:25:29 -04:00
class Ika
2025-08-23 14:38:42 -04:00
attr_reader :handler
2025-08-15 16:25:29 -04:00
attr_reader :lessons, :sessions
attr_accessor :current_lesson, :current_session
2025-08-19 21:07:51 -04:00
attr_reader :drill_plugin
2025-08-15 16:25:29 -04:00
2025-08-23 14:38:42 -04:00
def self.for(type:, **kwargs)
type.new **kwargs
end
def initialize
2025-08-15 16:25:29 -04:00
@lessons = {}
@sessions = {}
@current_session = nil
2025-08-23 14:38:42 -04:00
@current_lesson = Lesson.new(responder: responder(nil))
2025-08-19 21:07:51 -04:00
@drill_plugin = DrillPlugin.new(self)
2025-08-15 16:25:29 -04:00
end
2025-08-15 17:03:12 -04:00
def current_lesson_running?
current_lesson.running?
end
def start_lesson!(message)
2025-08-23 14:38:42 -04:00
current_lesson.responder = responder(message.channel)
2025-08-15 17:03:12 -04:00
current_lesson.start!(message.channel)
end
def stop_current_lesson!
current_lesson.stop!
end
def handle_message(message)
if command = Commands::Command.for(self, message)
command.execute
end
2025-08-15 16:25:29 -04:00
2025-08-23 14:38:42 -04:00
# drill_plugin.handle_message message
2025-08-15 16:25:29 -04:00
end
end