logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

POE::Component::IRC::Plugin::CTCP - A PoCo-IRC plugin that auto-responds to CTCP requests

Author

       Chris 'BinGOs' Williams

Description

       POE::Component::IRC::Plugin::CTCP is a POE::Component::IRC plugin. It watches for "irc_ctcp_version",
       "irc_ctcp_userinfo", "irc_ctcp_ping", "irc_ctcp_time" and "irc_ctcp_source" events and autoresponds on
       your behalf.

Methods

"new"
       Takes a number of optional arguments:

       'version', a string to send in response to "irc_ctcp_version". Default is PoCo-IRC and version;

       'clientinfo', a string to send in response to "irc_ctcp_clientinfo".  Default is
       <http://search.cpan.org/perldoc?POE::Component::IRC::Plugin::CTCP>.

       'userinfo', a string to send in response to "irc_ctcp_userinfo". Default is 'm33p';

       'source', a string to send in response to "irc_ctcp_source". Default is
       <http://search.cpan.org/dist/POE-Component-IRC>.

       'eat', by default the plugin uses PCI_EAT_CLIENT, set this to 0 to disable this behaviour;

       Returns a plugin object suitable for feeding to POE::Component::IRC's "plugin_add" method.

   "eat"
       With no arguments, returns true or false on whether the plugin is "eating" CTCP events that it has dealt
       with. An argument will set "eating" to on or off appropriately, depending on whether the value is true or
       false.

Name

       POE::Component::IRC::Plugin::CTCP - A PoCo-IRC plugin that auto-responds to CTCP requests

See Also

       CTCP Specification <http://www.irchelp.org/irchelp/rfc/ctcpspec.html>.

perl v5.32.1                                       2021-09-30             POE::Component::IRC::Plugin::CTCP(3pm)

Synopsis

        use strict;
        use warnings;
        use POE qw(Component::IRC Component::IRC::Plugin::CTCP);

        my $nickname = 'Flibble' . $$;
        my $ircname = 'Flibble the Sailor Bot';
        my $ircserver = 'irc.blahblahblah.irc';
        my $port = 6667;

        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) ],
            ],
        );

        $poe_kernel->run();

        sub _start {
            # Create and load our CTCP plugin
            $irc->plugin_add( 'CTCP' => POE::Component::IRC::Plugin::CTCP->new(
                version => $ircname,
                userinfo => $ircname,
            ));

            $irc->yield( register => 'all' );
            $irc->yield( connect => { } );
            return:
        }

See Also