DESCRIPTION

POE::Component::Server::IRC is a POE component which implements an IRC server (also referred to as an IRC daemon or IRCd). It should be compliant with the pertient IRC RFCs and is based on reverse engineering Hybrid IRCd behaviour with regards to interactions with IRC clients and other IRC servers.

Yes, that's right. POE::Component::Server::IRC is capable of linking to foreign IRC networks. It supports the TS5 server to server protocol and has been tested with linking to Hybrid-7 based networks. It should in theory work with any TS5-based IRC network.

POE::Component::Server::IRC also has a services API, which enables one to extend the IRCd to create IRC Services. This is fully event-driven (of course =]). There is also a Plugin system, similar to that sported by POE::Component::IRC.

daemon_cmd_sjoin

Takes two arguments a spoofed nickname and an existing channel name. This command will then manipulate the channel timestamp to clear all modes on that channel, including existing channel operators, reset the channel mode to '+nt', the spoofed nick will then join the channel and gain channel ops.

daemon_cmd_privmsg

Takes three arguments, a spoofed nickname, a target (which can be a nickname or a channel name) and whatever text you wish to send.

daemon_cmd_notice

Takes three arguments, a spoofed nickname, a target (which can be a nickname or a channel name) and whatever text you wish to send.

daemon_cmd_locops

Takes two arguments, a spoofed nickname and the text message to send to local operators.

daemon_cmd_wallops

Takes two arguments, a spoofed nickname and the text message to send to all operators.

daemon_cmd_operwall

Takes two arguments, a spoofed nickname and the text message to send to all operators.

OUTPUT EVENTS

ircd_daemon_error

Emitted: when we fail to register with a peer;

Target: all plugins and registered sessions;

Args:

ARG0, the connection id;

ARG1, the server name;

ARG2, the reason;

ircd_daemon_server

Emitted: when a server is introduced onto the network;

Target: all plugins and registered sessions;

Args:

ARG0, the server name;

ARG1, the name of the server that is introducing them;

ARG2, the hop count;

ARG3, the server description;

ircd_daemon_squit

Emitted: when a server quits the network;

Target: all plugins and registered sessions;

Args:

ARG0, the server name;

ircd_daemon_nick

Emitted: when a user is introduced onto the network or changes their nickname

Target: all plugins and registered sessions;

Args (new user):

ARG0, the nickname;

ARG1, the hop count;

ARG2, the time stamp (TS);

ARG3, the user mode;

ARG4, the ident;

ARG5, the hostname;

ARG6, the server name;

ARG7, the real name;

Args (nick change):

ARG0, the full nick!user@host;

ARG1, the new nickname;

ircd_daemon_umode

Emitted: when a user changes their user mode;

Target: all plugins and registered sessions;

Args:

ARG0, the full nick!user@host;

ARG1, the user mode change;

ircd_daemon_quit

Emitted: when a user quits or the server they are on squits;

Target: all plugins and registered sessions;

Args:

ARG0, the full nick!user@host;

ARG1, the quit message;

ircd_daemon_join

Emitted: when a user joins a channel

Target: all plugins and registered sessions;

Args:

ARG0, the full nick!user@host;

ARG1, the channel name;

ircd_daemon_part

Emitted: when a user parts a channel;

Target: all plugins and registered sessions;

Args:

ARG0, the full nick!user@host;

ARG1, the channel name;

ARG2, the part message;

ircd_daemon_kick

Emitted: when a user is kicked from a channel;

Target: all plugins and registered sessions;

Args:

ARG0, the full nick!user@host of the kicker;

ARG1, the channel name;

ARG2, the nick of the kicked user;

ARG3, the kick message;

ircd_daemon_mode

Emitted: when a channel mode is changed;

Target: all plugins and registered sessions;

Args:

ARG0, the full nick!user@host or server name;

ARG1, the channel name;

ARG2..$#_, the modes and their arguments;

ircd_daemon_topic

Emitted: when a channel topic is changed

Target: all plugins and registered sessions;

Args:

ARG0, the full nick!user@host of the changer;

ARG1, the channel name;

ARG2, the new topic;

ircd_daemon_public

Emitted: when a channel message is sent (a spoofed nick must be in the channel)

Target: all plugins and registered sessions;

Args:

ARG0, the full nick!user@host of the sender;

ARG1, the channel name;

ARG2, the message;

ircd_daemon_privmsg

Emitted: when someone sends a private message to a spoofed nick

Target: all plugins and registered sessions;

Args:

ARG0, the full nick!user@host of the sender;

ARG1, the spoofed nick targeted;

ARG2, the message;

ircd_daemon_notice

Emitted: when someone sends a notice to a spoofed nick or channel

Target: all plugins and registered sessions;

Args:

ARG0, the full nick!user@host of the sender;

ARG1, the spoofed nick targeted or channel spoofed nick is in;

ARG2, the message;

ircd_daemon_invite

Emitted: when someone invites a spoofed nick to a channel;

Target: all plugins and registered sessions;

Args:

ARG0, the full nick!user@host of the inviter;

ARG1, the spoofed nick being invited;

ARG2, the channel being invited to;

ircd_daemon_rehash

Emitted: when an oper issues a REHASH command;

Target: all plugins and registered sessions;

Args:

ARG0, the full nick!user@host of the oper;

ircd_daemon_die

Emitted: when an oper issues a DIE command;

Target: all plugins and registered sessions;

Args:

ARG0, the full nick!user@host of the oper;

Note: the component will shutdown, this is a feature;

ircd_daemon_gline

Emitted: when an oper issues a GLINE command;

Target: all plugins and registered sessions;

Args:

ARG0, the full nick!user@host;

ARG1, the user mask;

ARG2, the host mask;

ARG3, the reason;

ircd_daemon_kline

Emitted: when an oper issues a KLINE command;

Target: all plugins and registered sessions;

Args:

ARG0, the full nick!user@host;

ARG1, the target for the KLINE;

ARG2, the duration in seconds;

ARG3, the user mask;

ARG4, the host mask;

ARG5, the reason;

ircd_daemon_rkline

Emitted: when an oper issues an RKLINE command;

Target: all plugins and registered sessions;

Args:

ARG0, the full nick!user@host;

ARG1, the target for the RKLINE;

ARG2, the duration in seconds;

ARG3, the user mask;

ARG4, the host mask;

ARG5, the reason;

ircd_daemon_unkline

Emitted: when an oper issues an UNKLINE command;

Target: all plugins and registered sessions;

Args:

ARG0, the full nick!user@host;

ARG1, the target for the UNKLINE;

ARG2, the user mask;

ARG3, the host mask;

ircd_daemon_locops

Emitted: when an oper issues a LOCOPS command;

Target: all plugins and registered sessions;

Args:

ARG0, the full nick!user@host;

ARG1, the locops message;

ircd_daemon_operwall

Emitted: when an oper issues a WALLOPS or OPERWALL command;

Target: all plugins and registered sessions;

Args:

ARG0, the full nick!user@host;

ARG1, the wallops or operwall message;

ircd_daemon_wallops

Emitted: when a server issues a WALLOPS;

Target: all plugins and registered sessions;

Args:

ARG0, the server name;

ARG1, the wallops message;

BUGS

A few have turned up in the past and they are sure to again. Please use http://rt.cpan.org/ to report any. Alternatively, email the current maintainer.