]> jfr.im git - irc/rqf/shadowircd.git/blob - doc/sgml/oper-guide/cmodes.sgml
[svn] - the new plan:
[irc/rqf/shadowircd.git] / doc / sgml / oper-guide / cmodes.sgml
1 <chapter id="cmodes">
2 <title>Cmodes</title>
3 <sect1>
4 <title>Meanings of channel modes</title>
5 <sect2>
6 <title>+b, channel ban</title>
7 <para>
8 Bans take one parameter which can take several forms.
9 The most common form is +b nick!user@host.
10 The wildcards * and ? are allowed, matching zero-or-more, and
11 exactly-one characters respectively. The masks will be trimmed to fit the maximum allowable
12 length for the relevant element.
13 Bans are also checked against the IP address, even if it resolved or
14 is spoofed.
15 CIDR is supported, like *!*@10.0.0.0/8. This is most useful with
16 IPv6.
17 Bans are not checked against the real hostname behind any kind
18 of spoof, except if host mangling is in use (e.g.
19 <filename>extensions/ip_cloaking.so</filename>):
20 if the user's host is mangled, their real hostname is checked
21 additionally, and if a user has no spoof but could enable mangling,
22 the mangled form of their hostname is checked additionally.
23 Hence, it is not possible to evade bans by toggling
24 host mangling.
25 </para>
26 <para>
27 The second form (extban) is +b $type or +b $type:data.
28 type is a single character (case insensitive) indicating the
29 type of match, optionally preceded by a tilde (~) to negate the
30 comparison. data depends on type. Each type is loaded as a module.
31 The available types (if any)
32 are listed in the EXTBAN token of the 005 (RPL_ISUPPORT) numeric.
33 See <filename>doc/extban.txt</filename> in the source distribution
34 for more information.
35 </para>
36 <para>
37 If no parameter is given, the list of bans is returned. All users
38 can use this form. The plus sign should also be omitted.
39 </para>
40 <para>
41 Matching users will not be allowed to join the channel or knock
42 on it. If they are already on the channel, they may not send to
43 it or change their nick.
44 </para>
45 </sect2>
46 <sect2>
47 <title>+c, colour filter</title>
48 <para>
49 This cmode activates the colour filter for the channel. This filters out bold, underline,
50 reverse video, beeps, mIRC colour codes, and ANSI escapes. Note that escape sequences will
51 usually leave cruft sent to the channel, just without the escape characters themselves.
52 </para>
53 </sect2>
54 <sect2>
55 <title>+e, ban exemption</title>
56 <para>
57 This mode takes one parameter of the same form as bans, which
58 overrides +b and +q bans for all clients it matches.
59 </para>
60 <para>
61 Only channel operators can see +e changes or request the list.
62 </para>
63 </sect2>
64 <sect2>
65 <title>+f, channel forwarding</title>
66 <para>
67 This mode takes one parameter, the name of a channel (+f #channel). If the channel also has the
68 +i cmode set, and somebody attempts to join without either being expliticly invited, or having
69 an invex (+I), then they will instead join the channel named in the mode parameter. The client
70 will also be sent a 470 numeric giving the original and target channels.
71 </para>
72 <para>
73 Users are similarly forwarded if the +j cmode is set and their attempt to join is throttled,
74 if +l is set and there are already too many users in the channel
75 or if +r is set and they are not identified.
76 </para>
77 <para>
78 Forwards may only be set to +F channels, or to channels the setter
79 has ops in.
80 </para>
81 <para>
82 Without parameter (/mode #channel f or /mode #channel +f) the
83 forward channel is returned. This form also works off channel.
84 </para>
85 </sect2>
86 <sect2>
87 <title>+F, allow anybody to forward to this</title>
88 <para>
89 When this mode is set, anybody may set a forward from a channel
90 they have ops in to this channel. Otherwise they have to have ops
91 in this channel.
92 </para>
93 </sect2>
94 <sect2>
95 <title>+g, allow anybody to invite</title>
96 <para>
97 When this mode is set, anybody may use the INVITE command on the channel in question. When it
98 is unset, only channel operators may use the INVITE command
99 (unless the invite_ops_only option is disabled and +i is
100 not set).
101 </para>
102 <para>
103 When this mode is set together with +i, all channel members can influence who can join.
104 </para>
105 </sect2>
106 <sect2>
107 <title>+i, invite only</title>
108 <para>
109 When this cmode is set, no client can join the channel unless they have an invex (+I) or are
110 invited with the INVITE command.
111 </para>
112 </sect2>
113 <sect2>
114 <title>+I, invite exception (invex)</title>
115 <para>
116 This mode takes one parameter of the same form as bans. Matching
117 clients do not need to be invited to join the channel when it is invite-only (+i).
118 </para>
119 <para>
120 Only channel operators can see +I changes or request the list.
121 </para>
122 </sect2>
123 <sect2>
124 <title>+j, join throttling</title>
125 <para>
126 This mode takes one parameter of the form <replaceable>n</replaceable>:<replaceable>t</replaceable>, where <replaceable>n</replaceable> and <replaceable>t</replaceable> are positive integers. Only <replaceable>n</replaceable> users may join in each period of <replaceable>t</replaceable> seconds.
127 </para>
128 <para>
129 Due to propagation delays between servers, more users may be
130 able to join (by racing for the last slot on each server).
131 </para>
132 </sect2>
133 <sect2>
134 <title>+k, key (channel password)</title>
135 <para>
136 Taking one parameter, when set, this mode requires a user to supply the key in order to join
137 the channel: /JOIN #channel key.
138 </para>
139 </sect2>
140 <sect2>
141 <title>+l, channel member limit</title>
142 <para>
143 Takes one numeric parameter, the number of users which are allowed to be in the channel before
144 further joins are blocked.
145 </para>
146 <para>
147 Due to propagation delays between servers, more users may be
148 able to join (by racing for the last slot on each server).
149 </para>
150 </sect2>
151 <sect2>
152 <title>+L, large ban list</title>
153 <para>
154 Channels with this mode will be allowed larger banlists (by default,
155 500 instead of 50 entries for +b, +q, +e and +I together).
156 Only network operators may set this mode.
157 </para>
158 </sect2>
159 <sect2>
160 <title>+m, moderated</title>
161 <para>
162 When a channel is set +m, only users with +o or +v on the channel can send to it.
163 </para>
164 <para>
165 Users can still knock on the channel or change their nick.
166 </para>
167 </sect2>
168 <sect2>
169 <title>+n, no external messages</title>
170 <para>
171 When set, this mode prevents users from sending to the channel without being in it themselves.
172 This is recommended.
173 </para>
174 </sect2>
175 <sect2>
176 <title>+o, channel operator</title>
177 <para>
178 This mode takes one parameter, a nick, and grants or removes channel
179 operator privilege to that user. Channel operators have full control
180 over the channel, having the ability to set all channel modes except
181 +L and +P, and kick users.
182 Like voiced users, channel operators can always
183 send to the channel, overriding +b, +m and +q modes and the
184 per-channel flood limit.
185 In most clients channel operators are marked with an '@' sign.
186 </para>
187 <para>
188 The privilege is lost if the user leaves the channel or server
189 in any way.
190 </para>
191 <para>
192 Most networks will run channel registration services (e.g. ChanServ)
193 which ensure the founder (and users designated by the founder) can
194 always gain channel operator privileges and provide some features
195 to manage the channel.
196 </para>
197 </sect2>
198 <sect2>
199 <title>+p, paranoid channel</title>
200 <para>
201 When set, the KNOCK command cannot be used on the channel
202 to request an invite, and users will not be shown the
203 channel in WHOIS replies unless they are on it.
204 Unlike in traditional IRC, +p and +s can be set together.
205 </para>
206 </sect2>
207 <sect2>
208 <title>+P, permanent channel</title>
209 <para>
210 Channels with this mode (which is accessible only to network operators) set will not be destroyed
211 when the last user leaves.
212 </para>
213 <para>
214 This makes it less likely modes, bans and the topic will be lost and
215 makes it harder to abuse network splits, but also causes more
216 unwanted restoring of old modes, bans and topics after long splits.
217 </para>
218 </sect2>
219 <sect2>
220 <title>+q, quiet</title>
221 <para>
222 This mode behaves exactly like +b (ban), except that the user may still join
223 the channel. The net effect is that they cannot knock on the channel,
224 send to the channel or change their nick while on channel.
225 </para>
226 </sect2>
227 <sect2>
228 <title>+Q, block forwarded users</title>
229 <para>
230 Channels with this mode set are not valid targets for forwarding. Any attempt to forward to
231 this channel will be ignored, and the user will be handled as if the attempt was never made (by
232 sending them the relevant error message).
233 </para>
234 <para>
235 This does not affect the ability to set +f.
236 </para>
237 </sect2>
238 <sect2>
239 <title>+r, block unidentified</title>
240 <para>
241 When set, this mode prevents unidentified users from joining.
242 </para>
243 </sect2>
244 <!-- not planned (jilles)
245 <sect2>
246 <title>+R, quiet unidentified</title>
247 <para>
248 When set, this mode prevents unidentified users from sending to the channel, although they can
249 still join.
250 </para>
251 <para>
252 Please note that this mode is not implemented in Charybdis 1.0.x, and is documented in
253 expectation for upcoming Charybdis 1.1.
254 </para>
255 </sect2>
256 -->
257 <sect2>
258 <title>+s, secret channel</title>
259 <para>
260 When set, this mode prevents the channel from appearing in the
261 output of the LIST, WHO and WHOIS command by users who are not on
262 it. Also, the server will refuse to answer WHO, NAMES, TOPIC and
263 LIST queries from users not on the channel.
264 </para>
265 </sect2>
266 <sect2>
267 <title>+t, topic limit</title>
268 <para>
269 When set, this mode prevents users who are not channel operators
270 from changing the topic.
271 </para>
272 </sect2>
273 <sect2>
274 <title>+v, voice</title>
275 <para>
276 This mode takes one parameter, a nick, and grants or removes voice
277 privilege to that user. Voiced users can always send to the channel,
278 overriding +b, +m and +q modes and the per-channel flood limit.
279 In most clients voiced users are marked with a plus sign.
280 </para>
281 <para>
282 The privilege is lost if the user leaves the channel or server
283 in any way.
284 </para>
285 </sect2>
286 <sect2>
287 <title>+z, reduced moderation</title>
288 <para>
289 When +z is set, the effects of +m are relaxed. For each message, if that message
290 would normally be blocked by moderation, it is instead sent to all channel operators. This is intended for use in moderated debates.
291 </para>
292 <para>
293 Note that +n and channel bans/quiets are unaffected by this. To silence a given user completely,
294 remove them from the channel.
295 </para>
296 </sect2>
297 </sect1>
298 </chapter>
299 <!-- Keep this comment at the end of the file
300 Local variables:
301 mode: sgml
302 sgml-omittag:t
303 sgml-shorttag:t
304 sgml-namecase-general:t
305 sgml-general-insert-case:lower
306 sgml-minimize-attributes:nil
307 sgml-always-quote-attributes:t
308 sgml-indent-step:2
309 sgml-indent-data:t
310 sgml-parent-document:("charybdis-oper-guide.sgml" "book")
311 sgml-exposed-tags:nil
312 fill-column:105
313 End:
314 -->