AnyEvent-IRC-Server
view release on metacpan or search on metacpan
examples/sample-ircd.pl view on Meta::CPAN
);
my $ircd = AnyEvent::IRC::Server->new(
host => '127.0.0.1',
port => $port,
'servername' => 'localhost'
);
$ircd->reg_cb(
daemon_join => sub {
my ($irc, $nick, $chan) = @_;
say "join: $nick, $chan";
},
daemon_part => sub {
my ($irc, $nick, $chan) = @_;
say "part: $nick, $chan";
},
daemon_topic => sub {
my ($irc, $nick, $chan, $topic) = @_;
say "topic: $nick, $chan, $topic";
},
daemon_privmsg => sub {
my ($irc, $nick, $chan, $text) = @_;
say "privmsg: $nick, $chan, $text";
},
daemon_notice => sub {
my ($irc, $nick, $chan, $text) = @_;
say "notice: $nick, $chan, $text";
},
);
$ircd->run();
print "irc server is ready in irc://0:$port/\n";
AE::cv->recv();
lib/AnyEvent/IRC/Server.pm view on Meta::CPAN
ctime => POSIX::strftime( '%Y-%m-%d %H:%M:%S', localtime() ),
channel_chars => '#&',
prepared_cb => sub {
my ($self, $host, $port) = @_;
print "$class is ready on : $host:$port\n";
},
@_,
);
my $say = sub {
my ($handle, $cmd, @args) = @_;
my $msg = mk_msg_ex($self->host, $cmd, $handle->{nick}, @args);
debugf("Sending '%s'", $msg);
$msg .= $CRLF;
$handle->push_write($msg)
};
my $need_more_params = sub {
my ($handle, $cmd) = @_;
$say->($handle, ERR_NEEDMOREPARAMS, $cmd, 'Not enough parameters');
};
( run in 0.333 second using v1.01-cache-2.11-cpan-d7a12ab2c7f )