rendered paste bodypackage LinuxRulz::Bot::Plugin::HTTPDPlugin;use Moses::Plugin;use namespace::autoclean;use Data::Dumper;use POE::Component::Server::HTTP;use HTTP::Status;with "LinuxRulz::Bot::Role::Plugin";my $objects;has _httpdaliases => ( isa => 'HashRef', accessor => 'httpdaliases', builder => '_build__httpdaliases', lazy_build => 1,);sub _build__httpdaliases { POE::Component::Server::HTTP->new( Port => 8000, ContentHandler => { '/' => \&handler, }, Headers => { Server => 'My Server' }, );}sub handler { my ($request, $response) = @_; $response->code(RC_OK); $response->content("Welcome! This site is powered by POE::Component::Server::HTTP which was created in LinuxRulz::Bot::Plugin::HTTPDPlugin and inherits LinuxRulz::Bot::Role::Plugin via Moose with() function!"); $objects->{self}->send_msg($objects->{irc}, "" , "#linuxrulz.bots", "chan", "Got HTTP Connection!"); return RC_OK;}after "PCI_register" => sub { my ( $self, $irc ) = @_; $objects = { self => $self, irc => $irc }; $self->httpdaliases(); return 1;};after "PCI_unregister" => sub { my ( $self, $irc ) = @_; POE::Kernel->call($self->httpdaliases->{httpd}, "shutdown"); return 1;};sub S_msg { my ( $self, $irc, $nickstr, $target, $msg ) = @_; return $self->handle_message($irc, $$nickstr, $$target, "priv", $$msg); return PCI_EAT_NONE;}sub S_bot_addressed { my ( $self, $irc, $nickstr, $channel, $msg ) = @_; return $self->handle_message($irc, $$nickstr, $$channel, "chan", $$msg); return PCI_EAT_NONE;}sub handle_message { my ( $self, $irc, $nickstr, $where, $source, $message ) = @_; my ($nick) = split /!/, $nickstr; if($message =~ /^!testhttpd$/) { $self->send_msg($irc, $nickstr, $where, $source, "Test"); } return PCI_EAT_NONE;}__PACKAGE__->meta->add_method( S_public => \&S_bot_addressed );1;