#!/usr/bin/perl use warnings; use strict; use POE; use POE::Component::Server::IRC; my $pocosi = POE::Component::Server::IRC->spawn (Alias => 'ircd', Debug => 1); POE::Session->create ( inline_states => { _start => \&test_start, _stop => \&test_stop, }, heap => { Obj => $pocosi }, ); $poe_kernel->run(); exit 0; sub test_start { my ($kernel,$heap) = @_[KERNEL,HEAP]; $kernel->post ( 'ircd' => 'register' ); $kernel->post ( 'ircd' => 'configure' => { Auth => 1, AntiFlood => 1 } ); $kernel->post ( 'ircd' => 'add_i_line' => { IPMask => '*', Port => 6667 } ); $kernel->post ( 'ircd' => 'add_operator' => { UserName => 'Flibble', Password => 'letmein' } ); $kernel->post ( 'ircd' => 'add_listener' => { Port => 6667 } ); $kernel->post ( 'ircd' => 'set_motd' => [ 'This is an experimental server', 'Testing POE::Component::Server::IRC', 'Enjoy!' ] ); } sub test_stop { print "Server stopped\n"; } #### POE::Session->create ( inline_states => { _start => \&test_start, _stop => \&test_stop, # ircd_client_privmsg => \&POE::Component::Server::IRC::hue_privmsg_handler, ## 1 }, # object_states => [ $pocosi => { ircd_client_privmsg => 'hue_privmsg_handler' },], ## 2 # package_states => [ 'POE::Component::Server::IRC' => { ircd_client_privmsg => 'hue_privmsg_handler' },], ## 3 heap => { Obj => $pocosi }, ); #### $kernel->post ( 'ircd', 'ircd_client_privmsg', 'test1'); $kernel->delay ( 'ircd_client_privmsg', 2, 'test2'); #### my $pocosi_ircd_client_message = \&POE::Component::Server::IRC::ircd_client_message; sub POE::Component::Server::IRC::ircd_client_message { print "got in!\n"; # $pocosi_ircd_client_message->(@_); }