|
|
|
IRC bot 'acceptor' :: Описание работы
Бот построен на модуле Net::IRC. Создается объект класса Net::IRC, и при возникновения события в нем происходит переход на нужную процедуру в зависимости от типа события.
$conn->add_handler('join', \&on_join);
$conn->add_handler('public', \&on_public);
$conn->add_handler('public', \&on_public);
sub on_join {
print "on_join\n";
# some code of on_join procedure
}
Основная обработка команды происходит в функции on_public_command, сначала происходит процедура разделения введенного текста:
my ($conn, $command, $nick) = @_;
$str= $_ = $command;
@f = split (/ /);
$fcount=@f;
После этого идет сравнение запроса команды с шаблоном:
#topic
if (( $f[0] eq 'topic') or ( $f[0] eq 't') or ( $f[0] eq 'т') or ( $f[0] eq 'тема')){
if (in_array($nick, @op)) {
$conn->topic($chan, "$str");
$conn->notice($nick, "Topic have been set to: $str");
} }
|
|