2017-08-06 05:36:15 -07:00
|
|
|
require './common.rb'
|
|
|
|
require './server.rb'
|
|
|
|
require './module.rb'
|
|
|
|
|
|
|
|
require 'yaml'
|
|
|
|
|
|
|
|
module Vrobot4
|
|
|
|
def self.loadServer servinfo
|
|
|
|
name = servinfo["name"]
|
|
|
|
type = servinfo["type"]
|
|
|
|
|
|
|
|
log :INFO, "loadServer: loading configuration for", name
|
|
|
|
|
|
|
|
serv = Server::get_server_type(type).new(servinfo)
|
|
|
|
|
|
|
|
servinfo.has_key?("modules") && servinfo["modules"].each \
|
|
|
|
{|mod| serv.loadMod Module::get_module_type(mod).new}
|
|
|
|
|
|
|
|
serv
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.loadBot botinfo
|
|
|
|
servers = []
|
|
|
|
log :INFO, "loadBot: loading configuration for", botinfo["name"]
|
|
|
|
botinfo["servers"].each {|servinfo| servers << loadServer(servinfo)}
|
|
|
|
servers
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.main cfgname
|
|
|
|
cfg = nil
|
|
|
|
|
|
|
|
log :INFO, "vrobot version", Version
|
|
|
|
|
|
|
|
begin; cfg = YAML.load IO.read(cfgname)
|
|
|
|
rescue; log :ERROR, "error reading bot config:", $!; exit; end
|
|
|
|
|
2017-08-06 16:27:36 -07:00
|
|
|
Vrobot4.debug = cfg["debug"] if cfg.has_key? "debug"
|
|
|
|
|
2017-08-06 05:36:15 -07:00
|
|
|
begin
|
|
|
|
bots = []
|
|
|
|
thrds = []
|
|
|
|
cfg["loadmods"].each {|mod| load mod, true}
|
|
|
|
cfg["bots"] .each {|botinfo| bots << loadBot(botinfo)}
|
|
|
|
log :DEBUG, "bots:", bots.to_s
|
|
|
|
bots.each do |servs|
|
|
|
|
servs.each {|serv| thrds << Thread.new {serv.connect}}
|
|
|
|
end
|
|
|
|
thrds.each {|th| th.join}
|
|
|
|
rescue
|
|
|
|
log :ERROR, "error loading bot configuration:", $!
|
|
|
|
exit
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
Vrobot4.main "bot.yml"
|
|
|
|
|
|
|
|
## EOF
|