use Data::Dumper;
use POE::Kernel;
use POE::Session;
use POE::Component::IRC;
use strict;
sub start {
my ($kernel, $session) = @_[KERNEL, SESSION];
$kernel->post( 'test', 'connect', {
Debug => 1,
Nick => 'Bot',
Server => 'irc.psam.se',
Port => '6667',
Username => 'BotV6-Poe',
Ircname => 'ModHelp', }
)and print("connecting\n");
$kernel->post( 'test', 'register','all')and print("registered\n");
}
sub stop {
my ($kernel) = $_[KERNEL];
$kernel->call( 'test', 'quit', 'Neenios on ice!' );
}
sub on_connect {
my ($kernel) = $_[KERNEL];
print("in on_Connect\n");
$kernel->post( 'test', 'join', '#Alex' )and print("Joined\n");
}
sub on_msg {
my $kernel = @_[KERNEL];
my @args = @_[ ARG0 .. $#_ ];
my $list=join(" . ",@args);
$kernel->post('test','privmsg','Isa',@_[ARG0]);
}
sub conn {
my ($server) = $_[ARG0];
print("connected to $server\n");
}
sub in_use {
my $kernel = @_[KERNEL];
print "Nickname is currently in use\n";
$kernel->post( 'test','nick','Mr' . int rand 200);
}
POE::Component::IRC->new('test');
POE::Session->create(inline_states =>{
irc_connected=>\&conn,
_start=>\&start,
_stop=>\&stop,
irc_001=>\&on_connect,
irc_msg=>\&on_msg,
# ERR_NICKNAMEINUSE => 433
irc_433=>\&in_use
},);
$poe_kernel->run();
Hope this helps.
antirice The first rule of Perl club is - use Perl The ith rule of Perl club is - follow rule i - 1 for i > 1
|