NAME
    POE::Component::IRC::Plugin::Role - A Moose role for POE::Component::IRC
    plugins

SYNOPSIS
      package My::Plugin;

      use Moose;
      use POE::Component::IRC::Plugin qw(:ALL);

      with 'POE::Component::IRC::Plugin::Role';

      # PCI_register and PCI_unregister are automatically dealt with

      sub S_001 {
        my $self = shift;
        $self->irc->yield( 'join', '#channel' );
        return PCI_EAT_NONE;
      }

      1;

DESCRIPTION
    POE::Component::IRC::Plugin::Role is a Moose role that encapsulates some
    of the boilerplate required to write POE::Component::IRC plugins with
    Moose.

    Simply consume the role in your Moose based plugins.

ATTRIBUTES
    "irc"
        Should be a POE::Component::IRC object. It can not be set in the
        constructor, but has "set_irc" and "clear_irc" writer and clearer
        methods, respectively. It is usually set for you by "PCI_register"
        and cleared by "PCI_unregister" methods.

    "S_events"
        An arrayref of "SERVER" events to register for when "PCI_Register"
        is called. The default is "all".

    "U_events"
        An arrayref of "USER" events to register for when "PCI_register" is
        called. The default is an empty arrayref, meaning no events of this
        type will be registered.

METHODS
    "PCI_register"
        This is called everytime a plugin object is added to
        POE::Component::IRC. It will set the "irc" attribute and register
        for the requested "S_events" and "U_events".

    "PCI_unregister"
        This is called everytime a plugin object is removed from
        POE::Component::IRC. It will clear the "irc" attribute.

AUTHOR
    Chris "BinGOs" Williams <chris@bingosnet.co.uk>

LICENSE
    Copyright  Chris Williams

    This module may be used, modified, and distributed under the same terms
    as Perl itself. Please see the license that came with your Perl
    distribution for details.

SEE ALSO
    POE::Component::IRC

    POE::Component::IRC::Plugin

    Moose::Role

