]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/commit
* Prevent multiple plugin registrations of the same name
authorTom Gilbert <tom@linuxbrit.co.uk>
Tue, 26 Jul 2005 21:50:00 +0000 (21:50 +0000)
committerTom Gilbert <tom@linuxbrit.co.uk>
Tue, 26 Jul 2005 21:50:00 +0000 (21:50 +0000)
commit5d5d9df1a4825fad5ef045cfc0b21b16e5e2bcc7
treef3814abafc8f1d6c589a29f4ddc89f55e510d493
parent3ba6917c904f5e664ae78b146f4e394ad805eb96
  * Prevent multiple plugin registrations of the same name
* reworking the config system to use yaml for persistence
* reworking the config system key names
* on first startup, the bot will prompt for the essential startup config
* new config module for configuring the bot at runtime
* new config module includes new configurables, for example changing the
    bot's language at runtime.
* various other fixes
* New way of mapping plugins to strings, using maps. These may be
familiar to rails users. This is to reduce the amount of regexps plugins
currently need to do to parse arguments. The old method (privmsg) is still
supported, of course. Example plugin now:
  def MyPlugin < Plugin
  def foo(m, params)
  m.reply "bar"
end

def complexfoo(m, params)
  m.reply "qux! (#{params[:bar]} #{params[:baz]})"
end
end
plugin = MyPlugin.new
# simple map
plugin.map 'foo'

    # this will match "rbot: foo somestring otherstring" and pass the
# parameters as a hash using the names in the map.
plugin.map 'foo :bar :baz', :action => 'complexfoo'
# this means :foo is an optional parameter
plugin.map 'foo :foo', :defaults => {:foo => 'bar'}
    # you can also gobble up into an array
plugin.map 'foo *bar' # params[:bar] will be an array of string elements
    # and you can validate, here the first param must be a number
plugin.map 'foo :bar', :requirements => {:foo => /^\d+$/}
20 files changed:
ChangeLog
rbot.rb
rbot/auth.rb
rbot/config.rb
rbot/ircbot.rb
rbot/ircsocket.rb
rbot/keywords.rb
rbot/message.rb
rbot/messagemapper.rb [new file with mode: 0644]
rbot/plugins.rb
rbot/plugins/autoop.rb
rbot/plugins/cal.rb
rbot/plugins/eightball.rb
rbot/plugins/karma.rb
rbot/plugins/lart.rb
rbot/plugins/nickserv.rb
rbot/plugins/opmeh.rb
rbot/plugins/quotes.rb
rbot/plugins/remind.rb
rbot/plugins/roulette.rb