Rechercher une page de manuel
POE::Component::IRC::Plugin::PlugMan.3pm
Langue: en
Version: 2008-05-28 (fedora - 05/07/09)
Section: 3 (Bibliothèques de fonctions)
NAME
POE::Component::IRC::Plugin::PlugMan - A PoCo-IRC plugin that provides plugin management services.SYNOPSIS
use strict; use warnings; use POE qw(Component::IRC::State); use POE::Component::IRC::Plugin::PlugMan; my $botowner = 'somebody!*@somehost.com'; my $irc = POE::Component::IRC::State->spawn(); POE::Session->create( package_states => [ main => [ qw(_start irc_plugin_add) ], ], ); sub _start { $irc->yield( register => 'all' ); $irc->plugin_add( 'PlugMan' => POE::Component::IRC::Plugin::PlugMan->new( botowner => $botowner ) ); return; } sub irc_plugin_add { my ($desc, $plugin) = @_[ARG0, ARG1]; if ($desc eq 'PlugMan') { $plugin->load( 'Connector', 'POE::Component::IRC::Plugin::Connector' ); } return; }
DESCRIPTION
POE::Component::IRC::Plugin::PlugMan is a POE::Component::IRC plugin management plugin. It provides support for 'on-the-fly' loading, reloading and unloading of plugin modules, via object methods that you can incorporate into your own code and a handy IRC interface.METHODS
"new"
new
Takes two optional arguments:
'botowner', an IRC mask to match against for people issuing commands via the IRC interface;
'debug', set to a true value to see when stuff goes wrong;
Not setting a 'botowner' effectively disables the IRC interface.
If 'botowner' is specified the plugin checks that it is being loaded into a POE::Component::IRC::State or sub-class and will fail to load otherwise.
Returns a plugin object suitable for feeding to POE::Component::IRC's plugin_add() method.
"load"
load
Loads a managed plugin.
Takes two mandatory arguments, a plugin descriptor and a plugin package name. Any other arguments are used as options to the loaded plugin constructor.
$plugin->load( 'Connector', 'POE::Component::IRC::Plugin::Connector', delay, 120 );
Returns true or false depending on whether the load was successfully or not.
"unload"
unload
Unloads a managed plugin.
Takes one mandatory argument, a plugin descriptor.
$plugin->unload( 'Connector' );
Returns true or false depending on whether the unload was successfully or not.
"reload"
reload
Unloads and loads a managed plugin, with applicable plugin options.
Takes one mandatory argument, a plugin descriptor.
$plugin->reload( 'Connector' );
"loaded"
loaded
Takes no arguments.
$plugin->loaded();
Returns a list of descriptors of managed plugins.
INPUT
An IRC interface is enabled by specifying a ``botowner'' mask to new(). Commands may be either invoked via a PRIVMSG directly to your bot or in a channel by prefixing the command with the nickname of your bot. One caveat, the parsing of the irc command is very rudimentary ( it merely splits the line on \s+ )."plugin_add"
plugin_add
Takes the same arguments as load().
"plugin_del"
plugin_del
Takes the same arguments as unload().
"plugin_reload"
plugin_reload
Takes the same arguments as reload().
"plugin_loaded"
plugin_loaded
Returns a list of descriptors of managed plugins.
"plugin_list"
plugin_list
Returns a list of descriptors of *all* plugins loaded into the current PoCo-IRC component.
AUTHOR
Chris 'BinGOs' WilliamsSEE ALSO
POE::Component::IRC::StatePOE::Component::IRC::Plugin
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre