The irccd program can runs plugins once IRC events are
received. For example, if someone sends you a private message plugins will be
invoked with that event. Both native plugins written in C++ and Javascript are
supported (if enabled at compile time).

The following IRC events are supported:

onCommand

This is a special event that does not exist in IRC context. It calls the
plugin special invocation command using !name
arguments... syntax. The exclamation mark is configured by default
to be the command character prefix, then if the adjacent name is known to
be a loaded plugin it is invoked with the additional arguments.

Example: to call the hangman plugin,
one may use !hangman to start a game.

See also
irccd.conf(5) on how to change
the command character prefix under a [server]
section.

onConnect

When a server successfully connects to an IRC server.

onDisconnect

When a server disconnected from an IRC server both in case of failures or
explicit user disconnection.

onInvite

Event called when the bot itself has been invited to a channel.

onJoin

When someone joins a channel.

onKick

When someone has been kicked from a channel, irccd may be included.

onLoad

This is a special event that does not exist in IRC context. It is invoked
when the plugin is initialized.

onMessage

Upon private message.

onMe

On action emote, also most known as /me
command.

onMode

When a user or channel mode change.

onNames

When a list of nicknames has been received.

onNick

On nick change, irccd may be included.

onNotice

On private notice.

onPart

When someone leaves a channel.

onReload

This is a special event that does not exist in IRC context. It is invoked
when the user asks to reload a plugin.

onTopic

When a channel topic has been changed.

onUnload

This is a special event that does not exist in IRC context. It is invoked
when the user asks to unload a plugin and before exiting.

onWhois

When a whois information has been received.

The following plugins are provided with irccd:

ask

auth

hangman

history

joke

links

logger

plugin

roulette

tictactoe

See additional documentation in their own manual page in the form
irccd-plugin-name(7) where
name is the actual plugin name.

irccd supports a feature called rules which allows you
to define a fine-grained set of rules allowed for specific plugins. For
instance, you may want to disable some IRC events for some plugins depending
on your set of parameters. This is useful for plugins that generates huge
traffic.

Rule events are matched using the same name as plugin events
described in the section above. For example, to disable a private message
event you must use the onCommand value.