vrobot4/source/main.rb

59 lines
1.4 KiB
Ruby

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