Add per-module configurations

master
Marrub 2017-08-09 03:52:34 -04:00
parent 5c76361425
commit aadd43f69f
7 changed files with 25 additions and 19 deletions

View File

@ -35,22 +35,27 @@ module Vrobot4
log :INFO, "vrobot version", Version
begin; cfg = YAML.load IO.read(cfgname)
rescue; log :ERROR, "error reading bot config:", $!; exit; end
begin
cfg = YAML.load IO.read(cfgname)
rescue
log :ERROR, "error reading bot config:", $!
return
end
Vrobot4.debug = cfg["debug"] if cfg.key? "debug"
cfg["loadmods"].each {|mod| load mod, true}
begin
bots = []
cfg["bots"].each {|botinfo| bots << loadBot(botinfo)}
log :DEBUGV, "bots:", bots.to_s
runBots bots
rescue
log :ERROR, "error loading bot config:", $!
exit
log :ERROR, "error loading bot config:",
$!.to_s + "\n" + $!.backtrace.first(3).join("\n")
return
end
runBots bots
end
end

View File

@ -1,6 +1,6 @@
module Vrobot4::Server
class Mod_Base < Vrobot4::Module::Module
def initialize
def initialize info
super
register :c_help, "help", "Prints documentation for commands."
register :c_die, "die", "Kills all bot instances.", roles: "o"
@ -37,7 +37,8 @@ module Vrobot4::Server
"bye",
"dedededed",
"Thanks, bye!",
"GOTTAGOBYE"].sample
"GOTTAGOBYE",
"the orks insisted upon dying"].sample
exit
end

View File

@ -1,7 +1,7 @@
class Mod_Discord < Vrobot4::Module::Module
Vrobot4::Module.add_module_type self, "Discord", server: "Discord"
def initialize
def initialize info
super
register :c_roles, "roles", "Gets a list of roles on your user."
register :c_purge, "purge", "Prunes messages from a channel.", roles: "o"

View File

@ -4,9 +4,9 @@ require 'json'
class Mod_Fun < Vrobot4::Module::Module
Vrobot4::Module.add_module_type self, "Fun"
Qdb = "http://greyserv.net/qdb"
QDB = "http://greyserv.net/qdb"
def initialize
def initialize info
super
register :c_carmack, "carmack", "mmmmmmmmmm"
register :c_revenant, "revenant", "AAAAAAAAA"
@ -59,11 +59,10 @@ class Mod_Fun < Vrobot4::Module::Module
def c_quote m, argv
check_args argv, "", "N"
if argv.length == 0
res = open(Qdb + "/interface.cgi").read
max = JSON.parse(res)["numQuotes"] - 1
m.reply_b open(Qdb + "/q/" + (rand(max) + 1).to_s).read
max = JSON.parse(open(QDB + "/interface.cgi").read)["numQuotes"] - 1
m.reply_b open(QDB + "/q/" + (rand(max) + 1).to_s).read
else
m.reply_b open(Qdb + "/q/" + argv[0].to_i.to_s).read
m.reply_b open(QDB + "/q/" + argv[0].to_i.to_s).read
end
end

View File

@ -1,7 +1,7 @@
class Mod_Util < Vrobot4::Module::Module
Vrobot4::Module.add_module_type self, "Utilities"
def initialize
def initialize info
super
register :c_rand, "rand", "Returns a random number. Example: .rand 500"
register :c_decide, "decide", "Decides between one or more choices."

View File

@ -27,8 +27,9 @@ module Vrobot4::Module
end
class Module
def initialize
def initialize info
@commands = {}
@info = info
Vrobot4.log :DEBUG, "initialized", self.to_s
end

View File

@ -35,7 +35,7 @@ module Vrobot4::Server
def initialize info
@info = info
@modules = [Mod_Base.new]
@modules = [Mod_Base.new(nil)]
load_permissions info["permissions"] if info.key? "permissions"
end
@ -45,7 +45,7 @@ module Vrobot4::Server
mt[:servflags] and mt[:servflags] !~ flags
raise ArgumentError, "Module " + mod + " not valid for this server"
end
@modules << mt[:type].new
@modules << mt[:type].new(@info.key?(mod) ? @info[mod] : nil)
end
def drop_mod mod