]> jfr.im git - solanum.git/blob - doc/tgchange.txt
Add ratelimit for high-bandwidth commands.
[solanum.git] / doc / tgchange.txt
1 Target Change for Messages
2 Lee H <lee -at- leeh.co.uk>
3 ---------------------------
4
5 Reworked by Jilles Tjoelker, February 2010.
6 Channel target change added by Jilles Tjoelker, August 2010.
7
8 If the server you are using uses the target change mechanism, then
9 restrictions are placed on how many different users and/or channels you can
10 message in a set timeframe. This also applies to invites (for the target
11 user) and topic changes.
12
13 Target change does not apply to ctcp replies, messages to yourself, messages
14 to services and joins.
15
16 You will have a set number of 'slots', each different target you message
17 will take up one slot. A client doing a nick change will not use a new slot,
18 however a client disconnecting from the server it is on and reconnecting
19 will. You will receive 1 new slot roughly every minute.
20
21 Additionally, clients that message or invite you are placed in one of a
22 small number of special slots, in many cases allowing replies without using
23 a slot.
24
25 When all slots are filled, messages to new targets will not be accepted.
26 Messages to targets already filling a slot will be accepted. If all slots
27 are full, you will receive the ERR_TARGCHANGE numeric, number 707 in the
28 form:
29 :<server> 707 <yournick> <target> :Targets changing too fast, message dropped
30
31 The slots are operated in an LRU (least recently used), so the person or
32 channel you have talked to least recently will be replaced.
33
34 The number of slots in use will be kept through a reconnection, though the
35 information in those slots will be dropped. However, you will always
36 receive one free slot on a reconnection. Other servers using this mechanism
37 will also be made aware of details about slots.
38
39 Target change does not apply if you are opped or voiced in a channel, and
40 you are messaging that channel or a client within that channel. The latter
41 can be done explicitly using the CNOTICE and CPRIVMSG commands, see
42 /quote help cnotice and /quote help cprivmsg, but is also implicit in a
43 normal /msg, /notice or /invite.
44
45 --
46 $Id: tgchange.txt 6 2005-09-10 01:02:21Z nenolod $