AnyEvent-IRC-Server
view release on metacpan or search on metacpan
t/04-privmsg.t view on Meta::CPAN
my $cv = AE::cv();
my $cv_john = AE::cv();
my $ircd = AnyEvent::IRC::Server->new(
port => $port,
'servername' => 'fushihara.anyevent.server.irc',
prepared_cb => sub {
my ( $self, $host, $port ) = @_;
},
);
$ircd->reg_cb(
daemon_privmsg => sub {
my ($ircd, $nick, $chan, $text) = @_;
if ($text eq 'yo') {
ok 1, 'privmsg callback!';
$ircd->daemon_cmd_privmsg('kan', '#foo', 'YEAAAAH!');
}
isnt $text, 'YEAAAAH!', 'do not send my message for me!';
},
);
$ircd->run();
my @test = (
sub {
my $raw = shift;
my ($chan, $msg) = @{$raw->{params}};
is $chan, '#foo';
is $msg, 'yo';
},
sub {
my $raw = shift;
my ($chan, $msg) = @{$raw->{params}};
is $chan, '#foo';
is $msg, 'YEAAAAH!';
},
);
my $irc = AnyEvent::IRC::Client->new();
$irc->reg_cb(
registered => sub {
ok 1, 'registered';
$irc->send_srv(JOIN => '#foo');
$cv_john->send();
},
'irc_privmsg' => sub {
my ($irc, $raw) = @_;
my $code = shift @test;
$code->($raw);
if (scalar(@test) == 0) {
$cv->send();
}
},
);
$irc->connect(
'127.0.0.1',
$port,
{
nick => 'testbot',
user => 'testbot',
real => 'test bot',
password => 'kogaidan'
}
);
my $john = AnyEvent::IRC::Client->new();
$john->reg_cb(
registered => sub {
ok 1, 'registered';
my ($irc) = @_;
$irc->send_srv(JOIN => '#foo');
$cv_john->recv();
$irc->send_srv(PRIVMSG => '#foo', 'yo');
},
);
$john->connect(
'127.0.0.1',
$port,
{
nick => 'john',
user => 'john',
real => 'john',
}
);
$cv->recv();
( run in 0.929 second using v1.01-cache-2.11-cpan-39bf76dae61 )