SYNOPSIS
use POE qw(Component::IRC Component::IRC::Plugin::Console);
my $nickname = 'Flibble' . $$;
my $ircname = 'Flibble the Sailor Bot';
my $ircserver = 'irc.blahblahblah.irc';
my $port = 6667;
my $bindport = 6969;
my @channels = ( '#Blah', '#Foo', '#Bar' );
my $irc = POE::Component::IRC->spawn(
nick => $nickname,
server => $ircserver,
port => $port,
ircname => $ircname,
) or die "Oh noooo! $!";
POE::Session->create(
package_states => [
main => [ qw(_start irc_001 irc_console_service irc_console_connect
irc_console_authed irc_console_close irc_console_rw_fail) ],
],
);
$poe_kernel->run();
sub _start {
$irc->plugin_add( 'Console' => POE::Component::IRC::Plugin::Console->new(
bindport => $bindport,
password => 'opensesame'
);
$irc->yield( register => 'all' );
$irc->yield( connect => { } );
return;
}
sub irc_001 {
$irc->yield( join => $_ ) for @channels;
return;
}
sub irc_console_service {
my $getsockname = $_[ARG0];
return;
}
sub irc_console_connect {
my ($peeradr, $peerport, $wheel_id) = @_[ARG0 .. ARG2];
return;
}
sub irc_console_authed {
my $wheel_id = $_[ARG0];
return;
}
sub irc_console_close {
my $wheel_id = $_[ARG0];
return;
}
sub irc_console_rw_fail {
my ($peeradr, $peerport) = @_[ARG0, ARG1];
return;
}
DESCRIPTION
POE::Component::IRC::Plugin::Console is a POE::Component::IRC plugin that provides an interactive console running over the loopback network. One connects to the listening socket using a telnet client (or equivalent), authenticate using the applicable password. Once authed one will receive all events that are processed through the component. One may also issue all the documented component commands.METHODS
new
Takes two arguments:'password', the password to set for *all* console connections;
'bindport', specify a particular port to bind to, defaults to 0, ie. randomly allocated;
Returns a plugin object suitable for feeding to POE::Component::IRC's "plugin_add" method.

