commit f70a16ec4339e619e769bba5a6e0df1895938bd5 Author: Bill Rossi Date: Tue Aug 12 06:09:47 2025 -0400 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6745be6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +token \ No newline at end of file diff --git a/icon.png b/icon.png new file mode 100644 index 0000000..f933ac8 Binary files /dev/null and b/icon.png differ diff --git a/ika.rb b/ika.rb new file mode 100644 index 0000000..5fa4ee6 --- /dev/null +++ b/ika.rb @@ -0,0 +1,20 @@ + require 'discordrb' + require_relative './session' + + token = File.read("./token") + + bot = Discordrb::Bot.new(token:) + + current_session = nil + + 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) + end + + current_session&.respond_to event + end + + bot.run diff --git a/session.rb b/session.rb new file mode 100644 index 0000000..41cdaef --- /dev/null +++ b/session.rb @@ -0,0 +1,49 @@ +class Session + attr_reader :bot, :owner, :users + + def initialize(event, owner) + @bot = event.bot + @owner = owner + @users = [owner] + event.respond "New Ika session created!" + end + + COMMANDS = %w[ + join + ] + + def command_join(event) + user = event.message.author + if contains_user? user + "#{event.message.author.username} is already in this session" + else + "#{event.message.author.username} joined" + end + end + + def add_user(user) + users << user + end + + def contains_user?(user) + users.include? user + end + + def valid_command(message_content) + prebang, cmd = message_content.split("!") + cmd if prebang.empty? && COMMANDS.include?(cmd) + end + + def respond_to(event) + if command = valid_command(event.message.content) + puts "running !#{command} from #{event.message.author.username}" + event.respond send("command_#{command}", event) + else + respond_to_normal_message event + end + end + + def respond_to_normal_message(event) + puts "received '#{event.message.content}' from #{event.message.author.username}" + end +end