Target Change for Messages
Lee H <lee -at- leeh.co.uk>
---------------------------

Reworked by Jilles Tjoelker, February 2010.

If the server you are using uses the target change mechanism, then
restrictions are placed on how many different users you can message in a set
timeframe. This also applies to invites.

Target change does not apply to channels, ctcp replies, messages to
yourself or messages to services.

You will have a set number of 'slots', each different client you message
will take up one slot.  A client doing a nick change will not use a new slot,
however a client disconnecting from the server it is on and reconnecting
will.  You will receive 1 new slot roughly every minute.

Additionally, clients that message or invite you are placed in one of a
small number of special slots, in many cases allowing replies without using
a slot.

When all slots are filled, messages to new clients will not be accepted.
Messages to clients already filling a slot will be accepted.  If all slots
are full, you will receive the ERR_TARGCHANGE numeric, number 707 in the
form:
:<server> 707 <yournick> <targetnick> :Targets changing too fast, message dropped

The slots are operated in an LRU (least recently used), so the person you
have talked to least recently will be replaced.

The number of slots in use will be kept through a reconnection, though the
information in those slots will be dropped.  However, you will always
receive one free slot on a reconnection.  Other servers using this mechanism
will also be made aware of details about slots.

Target change does not apply if you are opped or voiced in a channel, and
you are messaging a client within that channel.  This can be done explicitly
using the CNOTICE and CPRIVMSG commands, see /quote help cnotice and /quote
help cprivmsg, but is also implicit in a normal /msg, /notice or /invite.

-- 
$Id: tgchange.txt 6 2005-09-10 01:02:21Z nenolod $
