| 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 |
| bot | [R] |
initialise your plugin. Always call super if you override this method, as important variables are set up for you
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.