Class Irc::Plugins::Plugin
In: lib/rbot/plugins.rb
Parent: Object

base class for all rbot plugins certain methods will be called if they are provided, if you define one of the following methods, it will be called as appropriate:

map(template, options):map is the new, cleaner way to respond to specific message formats without littering your plugin code with regexps. examples:
  plugin.map 'karmastats', :action => 'karma_stats'

  # while in the plugin...
  def karma_stats(m, params)
    m.reply "..."
  end

  # the default action is the first component
  plugin.map 'karma'

  # attributes can be pulled out of the match string
  plugin.map 'karma for :key'
  plugin.map 'karma :key'

  # while in the plugin...
  def karma(m, params)
    item = params[:key]
    m.reply 'karma for #{item}'
  end

  # you can setup defaults, to make parameters optional
  plugin.map 'karma :key', :defaults => {:key => 'defaultvalue'}

  # the default auth check is also against the first component
  # but that can be changed
  plugin.map 'karmastats', :auth => 'karma'

  # maps can be restricted to public or private message:
  plugin.map 'karmastats', :private false,
  plugin.map 'karmastats', :public false,

end

To activate your maps, you simply register them plugin.register_maps This also sets the privmsg handler to use the map lookups for handling messages. You can still use listen(), kick() etc methods

listen(UserMessage):Called for all messages of any type. To differentiate them, use message.kind_of? It‘ll be either a PrivMessage, NoticeMessage, KickMessage, QuitMessage, PartMessage, JoinMessage, NickMessage, etc.
privmsg(PrivMessage):called for a PRIVMSG if the first word matches one the plugin register()d for. Use m.plugin to get that word and m.params for the rest of the message, if applicable.
kick(KickMessage):Called when a user (or the bot) is kicked from a channel the bot is in.
join(JoinMessage):Called when a user (or the bot) joins a channel
part(PartMessage):Called when a user (or the bot) parts a channel
quit(QuitMessage):Called when a user (or the bot) quits IRC
nick(NickMessage):Called when a user (or the bot) changes Nick
topic(TopicMessage):Called when a user (or the bot) changes a channel topic
connect():Called when a server is joined successfully, but before autojoin channels are joined (no params)
save:Called when you are required to save your plugin’s state, if you maintain data between sessions
cleanup:called before your plugin is "unloaded", prior to a plugin reload or bot quit - close any open files/connections or flush caches here

Methods

help   map   name   new   privmsg   register   usage  

Attributes

bot  [R] 

Public Class methods

initialise your plugin. Always call super if you override this method, as important variables are set up for you

Public Instance methods

return a help string for your module. for complex modules, you may wish to break your help into topics, and return a list of available topics if topic is nil. plugin is passed containing the matching prefix for this message - if your plugin handles multiple prefixes, make sure your return the correct help for the prefix requested

return an identifier for this plugin, defaults to a list of the message prefixes handled (used for error messages etc)

register the plugin as a handler for messages prefixed name this can be called multiple times for a plugin to handle multiple message prefixes

default usage method provided as a utility for simple plugins. The MessageMapper uses ‘usage’ as its default fallback method.

[Validate]