From f70a16ec4339e619e769bba5a6e0df1895938bd5 Mon Sep 17 00:00:00 2001 From: Bill Rossi Date: Tue, 12 Aug 2025 06:09:47 -0400 Subject: [PATCH] Initial commit --- .gitignore | 1 + icon.png | Bin 0 -> 18585 bytes ika.rb | 20 ++++++++++++++++++++ session.rb | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 70 insertions(+) create mode 100644 .gitignore create mode 100644 icon.png create mode 100644 ika.rb create mode 100644 session.rb 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 0000000000000000000000000000000000000000..f933ac829f3a0ecdd1cf6ce78b56832464478082 GIT binary patch literal 18585 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 literal 0 HcmV?d00001 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