Add per-module configurations
parent
5c76361425
commit
aadd43f69f
|
@ -35,22 +35,27 @@ module Vrobot4
|
||||||
|
|
||||||
log :INFO, "vrobot version", Version
|
log :INFO, "vrobot version", Version
|
||||||
|
|
||||||
begin; cfg = YAML.load IO.read(cfgname)
|
begin
|
||||||
rescue; log :ERROR, "error reading bot config:", $!; exit; end
|
cfg = YAML.load IO.read(cfgname)
|
||||||
|
rescue
|
||||||
|
log :ERROR, "error reading bot config:", $!
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
Vrobot4.debug = cfg["debug"] if cfg.key? "debug"
|
Vrobot4.debug = cfg["debug"] if cfg.key? "debug"
|
||||||
|
|
||||||
cfg["loadmods"].each {|mod| load mod, true}
|
cfg["loadmods"].each {|mod| load mod, true}
|
||||||
|
|
||||||
begin
|
begin
|
||||||
bots = []
|
bots = []
|
||||||
cfg["bots"].each {|botinfo| bots << loadBot(botinfo)}
|
cfg["bots"].each {|botinfo| bots << loadBot(botinfo)}
|
||||||
log :DEBUGV, "bots:", bots.to_s
|
log :DEBUGV, "bots:", bots.to_s
|
||||||
runBots bots
|
|
||||||
rescue
|
rescue
|
||||||
log :ERROR, "error loading bot config:", $!
|
log :ERROR, "error loading bot config:",
|
||||||
exit
|
$!.to_s + "\n" + $!.backtrace.first(3).join("\n")
|
||||||
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
runBots bots
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
module Vrobot4::Server
|
module Vrobot4::Server
|
||||||
class Mod_Base < Vrobot4::Module::Module
|
class Mod_Base < Vrobot4::Module::Module
|
||||||
def initialize
|
def initialize info
|
||||||
super
|
super
|
||||||
register :c_help, "help", "Prints documentation for commands."
|
register :c_help, "help", "Prints documentation for commands."
|
||||||
register :c_die, "die", "Kills all bot instances.", roles: "o"
|
register :c_die, "die", "Kills all bot instances.", roles: "o"
|
||||||
|
@ -37,7 +37,8 @@ module Vrobot4::Server
|
||||||
"bye",
|
"bye",
|
||||||
"dedededed",
|
"dedededed",
|
||||||
"Thanks, bye!",
|
"Thanks, bye!",
|
||||||
"GOTTAGOBYE"].sample
|
"GOTTAGOBYE",
|
||||||
|
"the orks insisted upon dying"].sample
|
||||||
exit
|
exit
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
class Mod_Discord < Vrobot4::Module::Module
|
class Mod_Discord < Vrobot4::Module::Module
|
||||||
Vrobot4::Module.add_module_type self, "Discord", server: "Discord"
|
Vrobot4::Module.add_module_type self, "Discord", server: "Discord"
|
||||||
|
|
||||||
def initialize
|
def initialize info
|
||||||
super
|
super
|
||||||
register :c_roles, "roles", "Gets a list of roles on your user."
|
register :c_roles, "roles", "Gets a list of roles on your user."
|
||||||
register :c_purge, "purge", "Prunes messages from a channel.", roles: "o"
|
register :c_purge, "purge", "Prunes messages from a channel.", roles: "o"
|
||||||
|
|
|
@ -4,9 +4,9 @@ require 'json'
|
||||||
class Mod_Fun < Vrobot4::Module::Module
|
class Mod_Fun < Vrobot4::Module::Module
|
||||||
Vrobot4::Module.add_module_type self, "Fun"
|
Vrobot4::Module.add_module_type self, "Fun"
|
||||||
|
|
||||||
Qdb = "http://greyserv.net/qdb"
|
QDB = "http://greyserv.net/qdb"
|
||||||
|
|
||||||
def initialize
|
def initialize info
|
||||||
super
|
super
|
||||||
register :c_carmack, "carmack", "mmmmmmmmmm"
|
register :c_carmack, "carmack", "mmmmmmmmmm"
|
||||||
register :c_revenant, "revenant", "AAAAAAAAA"
|
register :c_revenant, "revenant", "AAAAAAAAA"
|
||||||
|
@ -59,11 +59,10 @@ class Mod_Fun < Vrobot4::Module::Module
|
||||||
def c_quote m, argv
|
def c_quote m, argv
|
||||||
check_args argv, "", "N"
|
check_args argv, "", "N"
|
||||||
if argv.length == 0
|
if argv.length == 0
|
||||||
res = open(Qdb + "/interface.cgi").read
|
max = JSON.parse(open(QDB + "/interface.cgi").read)["numQuotes"] - 1
|
||||||
max = JSON.parse(res)["numQuotes"] - 1
|
m.reply_b open(QDB + "/q/" + (rand(max) + 1).to_s).read
|
||||||
m.reply_b open(Qdb + "/q/" + (rand(max) + 1).to_s).read
|
|
||||||
else
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
class Mod_Util < Vrobot4::Module::Module
|
class Mod_Util < Vrobot4::Module::Module
|
||||||
Vrobot4::Module.add_module_type self, "Utilities"
|
Vrobot4::Module.add_module_type self, "Utilities"
|
||||||
|
|
||||||
def initialize
|
def initialize info
|
||||||
super
|
super
|
||||||
register :c_rand, "rand", "Returns a random number. Example: .rand 500"
|
register :c_rand, "rand", "Returns a random number. Example: .rand 500"
|
||||||
register :c_decide, "decide", "Decides between one or more choices."
|
register :c_decide, "decide", "Decides between one or more choices."
|
||||||
|
|
|
@ -27,8 +27,9 @@ module Vrobot4::Module
|
||||||
end
|
end
|
||||||
|
|
||||||
class Module
|
class Module
|
||||||
def initialize
|
def initialize info
|
||||||
@commands = {}
|
@commands = {}
|
||||||
|
@info = info
|
||||||
Vrobot4.log :DEBUG, "initialized", self.to_s
|
Vrobot4.log :DEBUG, "initialized", self.to_s
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ module Vrobot4::Server
|
||||||
|
|
||||||
def initialize info
|
def initialize info
|
||||||
@info = info
|
@info = info
|
||||||
@modules = [Mod_Base.new]
|
@modules = [Mod_Base.new(nil)]
|
||||||
load_permissions info["permissions"] if info.key? "permissions"
|
load_permissions info["permissions"] if info.key? "permissions"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ module Vrobot4::Server
|
||||||
mt[:servflags] and mt[:servflags] !~ flags
|
mt[:servflags] and mt[:servflags] !~ flags
|
||||||
raise ArgumentError, "Module " + mod + " not valid for this server"
|
raise ArgumentError, "Module " + mod + " not valid for this server"
|
||||||
end
|
end
|
||||||
@modules << mt[:type].new
|
@modules << mt[:type].new(@info.key?(mod) ? @info[mod] : nil)
|
||||||
end
|
end
|
||||||
|
|
||||||
def drop_mod mod
|
def drop_mod mod
|
||||||
|
|
Loading…
Reference in New Issue