This commit is contained in:
Bill Rossi 2025-08-15 16:25:29 -04:00
parent 4304fbfe41
commit be2b905ddb
4 changed files with 53 additions and 27 deletions

32
ika.rb
View File

@ -1,30 +1,8 @@
require 'discordrb'
require_relative './session'
require_relative './lesson'
require 'discordrb'
require_relative './src/ika'
token = File.read("./token")
token = File.read("./token")
bot = Discordrb::Bot.new(token:)
ika = Ika.new Discordrb::Bot.new(token:)
current_session = nil
current_lesson = Lesson.new
bot.message do |event|
if event.message.content == "!init"
next event.respond("There's already a session running") unless current_session.nil?
next current_session = Session.new(event, event.message.author)
elsif event.message.content == "!lesson"
next event.respond("There's already a lesson running") if current_lesson.running?
event.respond("Starting a lesson now!")
next current_lesson.start!(event.channel)
elsif event.message.content == "!stoplesson"
next event.respond("There's no lesson running") unless current_lesson.running?
event.respond("Ending the current lesson!")
next current_lesson.stop!
end
current_session&.respond_to event
end
bot.run
ika.start!

48
src/ika.rb Normal file
View File

@ -0,0 +1,48 @@
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