Bot::IKCBot::Pluggable - extended Bot::BasicBot::Pluggable for IKC


run IKCBot server.

  use Bot::IKCBot::Pluggable;
  my $bot = Bot::IKCBot::Pluggable->new(
      ALIASNAME => 'ikchan',
      ikc_ip    => '',
      ikc_port  => 1919,
  $bot->load("Karma"); # you can load any
                       # Bot::BasicBot::Pluggable::Module::*

and you can talk to IKCBot by IKC. IKC specifier is ALIASNAME_IKC/PUBLISHED_STATE.

  use POE::Component::IKC::ClientLite;
  my $msg      = "hello!";
  my $channel  = "#test1919";
  my $bot_name = 'ikchan';
  my $ikc = POE::Component::IKC::ClientLite::create_ikc_client(
      ip      => '',
      port    => 1919,
      name    => 'notify-irc',
  $ikc->post($bot_name.'_IKC/say', { body => $msg, channel => $channel });


Bot::IKCBot::Pluggable is IRC bot extends Bot::BasicBot::Pluggable for IKC support. So you can use all Bot::BasicBot::Pluggable::Module::*, Karma, Infobot, Title and so on.

In my case, for sending Nagios's alert message to IRC channel, run IKCBot and define Nagios's command that invokes notify script to send alert message to IKCBot.

If you want to add your own state of POE::Session, you can do it by changing hashref $Bot::IKCBot::Pluggable::STATE_TABLE and define handler function.

  use POE;
  use Bot::IKCBot::Pluggable;
  $Bot::IKCBot::Pluggable::STATE_TABLE->{important} = "say_2times";
  *Bot::IKCBot::Pluggable::say_2times = sub {
      my($self, $arg) = @_[ OBJECT, ARG0 ];
  my $bot = Bot::IKCBot::Pluggable->new(

Additionally, Bot::IKCBot::Pluggable has "notice" method and use "notice" instead of "say"(=privmsg) when replying.


Bot::BasicBot::Pluggable, Bot::BasicBot. POE::Component::IKC::Server, POE::Component::IKC::ClientLite,


HIROSE Masaaki, <hirose31 at>



Please report any bugs or feature requests to bug-bot-ikcbot-pluggable at, or through the web interface at I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.


This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.