Initial documentation for developing bot modules.
bot.module uses the net_smartirc php class to work with IRC.
The global $irc object
$irc
is the object created when running the bot_start.php. It is a Net_SmartIRC() object. Configuration of the IRC connection happens by setting certain values belonging to this object.
Example: $irc->setAutoReconnect((boolean)variable_get('bot_auto_reconnect', 1));
which makes the bot try to reconnect to the server if disconnected for some reason.
In bot_start.php several configurations are set (for exact parameters check the source): $irc->setDebug()
, $irc->setAutoReconnect()
, $irc->setAutoRetry()
, $irc->setChannelSyncing()
, $irc->setUseSockets()
, $irc->registerActionhandler()
, $irc->registerTimehandler()
.
After the settings and registration of callbacks the bot is connected and logged in, then joins the configured channels and starts listening.
Some properties of $irc
, such as $irc->channel
, which is array type only becomes available after connecting to the channel, so make sure you check for the variable before doing a loop over its elements.
$irc object documentation
After joining the channels most of the $irc object gets populated with interesting details of the network.
Example $irc->channel (array):
Array
(
[#test] => Net_SmartIRC_channel Object
(
[name] => #test
[key] =>
[users] => Array
(
[bot] => Net_SmartIRC_channeluser Object
(
[op] =>
[voice] =>
[nick] => bot
[ident] => ~bot
[host] => localhost
[realname] =>
[ircop] =>
[away] =>
[server] =>
[hopcount] =>
)
[balu] => Net_SmartIRC_channeluser Object
(
[op] =>
[voice] =>
[nick] => balu
[ident] =>
[host] =>
[realname] =>
[ircop] =>
[away] =>
[server] =>
[hopcount] =>
)
)
[ops] => Array
(
)
[voices] => Array
(
)
[bans] => Array
(
)
[topic] =>
[mode] =>
)
)