Handlers toevoegen
Je hebt twee basis handlers, tijd en actie:
Tijd
Tijd handlers registreer je zo:
Code (php)
1
2
3
4
2
3
4
<?php
// Roep elke seconde $bot->commando(); aan (met als param &$irc)
$irc->registerTimeHandler(1000, $bot, 'commando');
?>
// Roep elke seconde $bot->commando(); aan (met als param &$irc)
$irc->registerTimeHandler(1000, $bot, 'commando');
?>
Actie
Actie handlers registreer je zo:
Code (php)
1
2
3
4
2
3
4
<?php
// Roep na elk bericht dat matcht met '.*' $bot->commando(); aan (met als params &$irc en &$data)
$irc->registerActionHandler(SMARTIRC_TYPE_CHANNEL, '.*', $bot, 'commando');
?>
// Roep na elk bericht dat matcht met '.*' $bot->commando(); aan (met als params &$irc en &$data)
$irc->registerActionHandler(SMARTIRC_TYPE_CHANNEL, '.*', $bot, 'commando');
?>
Er zijn nog meer actie types: (http://www.irchelp.org/irchelp/ircprimer.html#QRef legt ze redelijk uit)
SMARTIRC_TYPE_UNKNOWN
SMARTIRC_TYPE_CHANNEL
SMARTIRC_TYPE_QUERY
SMARTIRC_TYPE_CTCP
SMARTIRC_TYPE_NOTICE
SMARTIRC_TYPE_WHO
SMARTIRC_TYPE_JOIN
SMARTIRC_TYPE_INVITE
SMARTIRC_TYPE_ACTION
SMARTIRC_TYPE_TOPICCHANGE
SMARTIRC_TYPE_NICKCHANGE
SMARTIRC_TYPE_KICK
SMARTIRC_TYPE_QUIT
SMARTIRC_TYPE_LOGIN
SMARTIRC_TYPE_INFO
SMARTIRC_TYPE_LIST
SMARTIRC_TYPE_NAME
SMARTIRC_TYPE_MOTD
SMARTIRC_TYPE_MODECHANGE
SMARTIRC_TYPE_PART
SMARTIRC_TYPE_ERROR
SMARTIRC_TYPE_BANLIST
SMARTIRC_TYPE_TOPIC
SMARTIRC_TYPE_NONRELEVANT
SMARTIRC_TYPE_WHOIS
SMARTIRC_TYPE_WHOWAS
SMARTIRC_TYPE_USERMODE
SMARTIRC_TYPE_CHANNELMODE
SMARTIRC_TYPE_CTCP_REQUEST
SMARTIRC_TYPE_CTCP_REPLY
Een voorbeeldje: onjoin
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
//Func
function onjoin_greeting(&$irc, &$data) {
if ($data->nick == $irc->_nick) {
$irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel, 'Ik ben er =)');
}
return;
}
$irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel, 'Lo ' . $data->nick . '! =)');
}
// Register
$irc->registerActionhandler(SMARTIRC_TYPE_JOIN, '.*', $bot, 'onjoin_greeting');
?>
//Func
function onjoin_greeting(&$irc, &$data) {
if ($data->nick == $irc->_nick) {
$irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel, 'Ik ben er =)');
}
return;
}
$irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel, 'Lo ' . $data->nick . '! =)');
}
// Register
$irc->registerActionhandler(SMARTIRC_TYPE_JOIN, '.*', $bot, 'onjoin_greeting');
?>
« vorige pagina | volgende pagina »