+ BotConfig.register BotConfigStringValue.new('irc.nick', :default => "rbot",
+ :desc => "IRC nickname the bot should attempt to use", :wizard => true,
+ :on_change => Proc.new{|bot, v| bot.sendq "NICK #{v}" })
+ BotConfig.register BotConfigStringValue.new('irc.user', :default => "rbot",
+ :requires_restart => true,
+ :desc => "local user the bot should appear to be", :wizard => true)
+ BotConfig.register BotConfigArrayValue.new('irc.join_channels',
+ :default => [], :wizard => true,
+ :desc => "What channels the bot should always join at startup. List multiple channels using commas to separate. If a channel requires a password, use a space after the channel name. e.g: '#chan1, #chan2, #secretchan secritpass, #chan3'")
+ BotConfig.register BotConfigArrayValue.new('irc.ignore_users',
+ :default => [],
+ :desc => "Which users to ignore input from. This is mainly to avoid bot-wars triggered by creative people")
+
+ BotConfig.register BotConfigIntegerValue.new('core.save_every',
+ :default => 60, :validate => Proc.new{|v| v >= 0},
+ # TODO change timer via on_change proc
+ :desc => "How often the bot should persist all configuration to disk (in case of a server crash, for example)")
+ # BotConfig.register BotConfigBooleanValue.new('core.debug',
+ # :default => false, :requires_restart => true,
+ # :on_change => Proc.new { |v|
+ # debug ((v ? "Enabling" : "Disabling") + " debug output.")
+ # $debug = v
+ # debug (($debug ? "Enabled" : "Disabled") + " debug output.")
+ # },
+ # :desc => "Should the bot produce debug output?")
+ BotConfig.register BotConfigBooleanValue.new('core.run_as_daemon',
+ :default => false, :requires_restart => true,
+ :desc => "Should the bot run as a daemon?")
+ BotConfig.register BotConfigStringValue.new('core.logfile',
+ :default => false, :requires_restart => true,
+ :desc => "Name of the logfile to which console messages will be redirected when the bot is run as a daemon")
+