POE::Component::IRC::Plugin::BotAddressed - A PoCo-IRC plugin that generates
events when you are addressed
use POE::Component::IRC::Plugin::BotAddressed;
$irc->plugin_add( 'BotAddressed', POE::Component::IRC::Plugin::BotAddressed->new() );
sub irc_bot_addressed {
my ($kernel, $heap) = @_[KERNEL, HEAP];
my $nick = ( split /!/, $_[ARG0] )[0];
my $channel = $_[ARG1]->[0];
my $what = $_[ARG2];
print "$nick addressed me in channel $channel with the message '$what'\n";
}
sub irc_bot_mentioned {
my ($nick) = ( split /!/, $_[ARG0] )[0];
my ($channel) = $_[ARG1]->[0];
my ($what) = $_[ARG2];
print "$nick mentioned my name in channel $channel with the message '$what'\n";
}
POE::Component::IRC::Plugin::BotAddressed is a POE::Component::IRC plugin. It
watches for public channel traffic (i.e.
"irc_public" and
"irc_ctcp_action") and will generate an
"irc_bot_addressed",
"irc_bot_mentioned" or
"irc_bot_mentioned_action" event if its name
comes up in channel discussion.
One optional argument:
'eat', set to true to make the plugin eat the
"irc_public" /
"irc_ctcp_action" event and only generate
an appropriate event, default is false.
Returns a plugin object suitable for feeding to
POE::Component::IRC's "plugin_add"
method.
Has the same parameters passed as
"irc_ctcp_public".
"ARG2" contains the message with the
addressed nickname removed, ie. Assuming that your bot is called LameBOT, and
someone says 'LameBOT: dance for me', you will actually get 'dance for me'.
Has the same parameters passed as
"irc_public".
Has the same parameters passed as
"irc_ctcp_action".
Chris 'BinGOs' Williams <chris@bingosnet.co.uk>