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 Vrobot4.debug = cfg["debug"] if cfg.has_key? "debug" 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