Initial commit
This commit is contained in:
commit
f70a16ec43
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
token
|
20
ika.rb
Normal file
20
ika.rb
Normal file
@ -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
|
49
session.rb
Normal file
49
session.rb
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user