#include <libirc_events.h>
All the communication with the IRC network is based on events. Generally speaking, event is anything generated by someone else in the network, or by the IRC server itself. "Someone sends you a message", "Someone has joined the channel", "Someone has quits IRC" - all these messages are events.
Every event has its own event handler, which is called when the appropriate event is received. You don't have to define all the event handlers; define only the handlers for the events you need to intercept.
Most event callbacks are the types of irc_event_callback_t. There are also events, which generate irc_eventcode_callback_t, irc_event_dcc_chat_t and irc_event_dcc_send_t callbacks.
|
The "channel" event is triggered upon receipt of a PRIVMSG message to an entire channel, which means that someone on a channel with the client has said something aloud. Your own messages don't trigger PRIVMSG event.
|
|
The "on_connect" event is triggered when the client successfully connects to the server, and could send commands to the server. No extra params supplied; params is 0. |
|
The "action" event is triggered when the client receives the CTCP ACTION message. These messages usually looks like: [23:32:55] * Tim gonna sleep.
|
|
The "ctcp" event is triggered when the client receives the CTCP reply.
|
|
The "ctcp" event is triggered when the client receives the CTCP request. By default, the built-in CTCP request handler is used. The build-in handler automatically replies on most CTCP messages, so you will rarely need to override it.
libirc_event_ctcp_internal function to see how to write your own CTCP request handler. Also you may find useful this question in FAQ: What is CTCP, and why do I need my own handler? |
|
The "dcc chat" event is triggered when someone requests a DCC CHAT from you. See the params in irc_event_dcc_chat_t specification. |
|
The "dcc chat" event is triggered when someone wants to send a file to you via DCC SEND request. See the params in irc_event_dcc_send_t specification. |
|
The "invite" event is triggered upon receipt of an INVITE message, which means that someone is permitting the client's entry into a +i channel.
|
|
The "join" event is triggered upon receipt of a JOIN message, which means that someone has entered a channel that the client is on.
|
|
The "kick" event is triggered upon receipt of a KICK message, which means that someone on a channel with the client (or possibly the client itself!) has been forcibly ejected.
|
|
The "mode" event is triggered upon receipt of a channel MODE message, which means that someone on a channel with the client has changed the channel's parameters.
|
|
The "nick" event is triggered when the client receives a NICK message, meaning that someone (including you) on a channel with the client has changed their nickname.
|
|
The "notice" event is triggered upon receipt of a NOTICE message which means that someone has sent the client a public or private notice. According to RFC 1459, the only difference between NOTICE and PRIVMSG is that you should NEVER automatically reply to NOTICE messages. Unfortunately, this rule is frequently violated by IRC servers itself - for example, NICKSERV messages require reply, and are NOTICEs.
|
|
The "numeric" event is triggered upon receipt of any numeric response from the server. There is a lot of such responses, see the full list here: Numeric reply codes from RFC1459. See the params in irc_eventcode_callback_t specification. |
|
The "part" event is triggered upon receipt of a PART message, which means that someone has left a channel that the client is on.
|
|
The "privmsg" event is triggered upon receipt of a PRIVMSG message which is addressed to one or more clients, which means that someone is sending the client a private message.
|
|
The "quit" event is triggered upon receipt of a QUIT message, which means that someone on a channel with the client has disconnected.
|
|
The "topic" event is triggered upon receipt of a TOPIC message, which means that someone on a channel with the client has changed the channel's topic.
|
|
The "umode" event is triggered upon receipt of a user MODE message, which means that your user mode has been changed.
|
|
The "unknown" event is triggered upon receipt of any number of unclassifiable miscellaneous messages, which aren't handled by the library. |