|
|
|
#!/usr/bin/env ruby
|
|
|
|
# ./Emery.rb
|
|
|
|
# pkill Emery
|
|
|
|
require 'discordrb'
|
|
|
|
require 'tmpdir'
|
|
|
|
|
|
|
|
puts "---\nEmery PID is #{Process.pid}\nTo kill Emery simply {kill #{Process.pid}}\n---"
|
|
|
|
|
|
|
|
|
|
|
|
def emery_loadModules()
|
|
|
|
$commands = {}
|
|
|
|
puts '---'
|
|
|
|
# Yes this gets redefined. Why? Because I like having all my variables in one place but it also needs to be cleared again
|
|
|
|
File.foreach("modules/modules.txt", chop: true) { |line|
|
|
|
|
# For every line in the file, do below
|
|
|
|
modPath = "./modules/" + line.delete("\n") + "/main.rb"
|
|
|
|
mod = line.delete("\n")
|
|
|
|
if(File.exist?(modPath))
|
|
|
|
puts "Load success in #{mod}!"
|
|
|
|
load modPath
|
|
|
|
if eval("defined? " + "#{mod}_getCommand") == "method"
|
|
|
|
name, command = send("#{mod}_getCommand")
|
|
|
|
$commands[name] = command
|
|
|
|
else
|
|
|
|
puts "Load error in #{mod}!"
|
|
|
|
end
|
|
|
|
end
|
|
|
|
}
|
|
|
|
puts '---'
|
|
|
|
end
|
|
|
|
|
|
|
|
token = File.read("token.txt")
|
|
|
|
$bot = Discordrb::Bot.new token: "#{token}"
|
|
|
|
$queue = {}
|
|
|
|
$voicebots = {}
|
|
|
|
$commands = {}
|
|
|
|
$bang = '!'
|
|
|
|
#find a way for this to be server-specific with a fallback option
|
|
|
|
|
|
|
|
emery_loadModules()
|
|
|
|
|
|
|
|
$bot.message() do |event|
|
|
|
|
message = event.content
|
|
|
|
server = event.server
|
|
|
|
author = event.author
|
|
|
|
if message.start_with?('!')
|
|
|
|
message = message.sub("!", '')
|
|
|
|
if $commands.key?(message.split.first.downcase)
|
|
|
|
send("#{$commands[message.split.first.downcase]}", event)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
$bot.run
|