![]() |
ПОМОГИТЕ -= Perl-net::irc =-
Начал я писать IRC бота на PERL....
use PERLDOC and GOOGLE. вот что получилось: Код:
#!/usr/bin/perl -wПомогите разобраться) а теперь вопросы: 1) как сделать чтоб он, не на все -msg public- отвечал "Im bot", а чтоб на определенные команды. 2) (1) + команды принимались только от человека $admin 3) чтобы бот отвечал человеку, который написал в приват. 4) и как использовать CTCP requests 5) в чём разница между [$conn->add_global_handler] и [$conn->add_handler] Конечно таких ботов куча... но я не осилил исходники(( уж сильно большие и непонятные для меня письмена. З.Ы Я нович0к в Пёрле, сильно не грузить xD З.Ы.Ы Ответы GOOGLE вам помощ и PERLDOC читай - НЕ ПРИНИМАЮТСЯ! З.Ы.Ы.Ы Зарание спасибо! |
Цитата:
sub on_public { my ($self, $event) = @_; my $text = $event->{args}[0]; if($text eq 'test') {$self->privmsg($kanal, "Im bot");} } 2. sub on_msg { my ($self, $event) = @_; my $from = $event->{nick}; if($from eq $admin){ $self->privmsg($admin, "private msg");} } 3. sub on_msg { my ($self, $event) = @_; my $from = $event->{nick}; $self->privmsg($from, "private msg"); } 5. # This sub will assign a user's custom function to a particular event which # might be received by any Connection object. # Takes 3 args: the event to modify, as either a string or numeric code # If passed an arrayref, the array is assumed to contain # all event names which you want to set this handler for. # a reference to the code to be executed for the event # (optional) A value indicating whether the user's code should replace # the built-in handler, or be called with it. Possible values: # 0 - Replace the built-in handlers entirely. (the default) # 1 - Call this handler right before the default handler. # 2 - Call this handler right after the default handler. # These can also be referred to by the #define-like strings in %define. sub add_global_handler { my ($self, $event, $ref, $rp) = @_; return $self->_add_generic_handler($event, $ref, $rp, \%_udef, 'add_global_handler'); } # This sub will assign a user's custom function to a particular event which # this connection might receive. Same args as above. sub add_handler { my ($self, $event, $ref, $rp) = @_; return $self->_add_generic_handler($event, $ref, $rp, $self->{_handler}, 'add_handler'); } |
по 2) пункту:
Надо не приват мессаги, а общий чат. Как сделать проверку по нику из общего чата. Суть такая: Есть список ников которым доступны команды управлением ботом (например команда !restart) Эти люди написали в чате !restart и бот ->exit(1) Если левый человек напишет(которого нет в adminliste), то ничего не произойдет. |
+
и еще есть трабл...
see it: http://img230.imageshack.us/img230/7...rrorhu0.th.jpg скрипт работает, но ошибки летят... с чем это связано? |
Ошибки хз, а какая разница в общем чате или нет? Проверяй просто ник того кто отправляет и выполняй в зависимости от этого действие
|
разница есть....
мне надо чтоб в общий чат работало) вот только хз как реализовать... |
В чем проблема в функции on_public дописать строчку
my $from = $event->{nick}; И в зависимости от содержимого по-разному обрабатывать? |
а точно) спс
|
| Время: 16:49 |