mirror of
https://github.com/matrix-construct/construct
synced 2024-11-29 18:22:50 +01:00
324 lines
12 KiB
Text
324 lines
12 KiB
Text
<chapter id="cmodes">
|
|
<title>Cmodes</title>
|
|
<sect1>
|
|
<title>Meanings of channel modes</title>
|
|
<sect2>
|
|
<title>+b, channel ban</title>
|
|
<para>
|
|
Bans take one parameter which can take several forms.
|
|
The most common form is +b nick!user@host.
|
|
The wildcards * and ? are allowed, matching zero-or-more, and
|
|
exactly-one characters respectively. The masks will be trimmed to fit the maximum allowable
|
|
length for the relevant element.
|
|
Bans are also checked against the IP address, even if it resolved or
|
|
is spoofed.
|
|
CIDR is supported, like *!*@10.0.0.0/8. This is most useful with
|
|
IPv6.
|
|
Bans are not checked against the real hostname behind any kind
|
|
of spoof, except if host mangling is in use (e.g.
|
|
<filename>extensions/ip_cloaking.so</filename>):
|
|
if the user's host is mangled, their real hostname is checked
|
|
additionally, and if a user has no spoof but could enable mangling,
|
|
the mangled form of their hostname is checked additionally.
|
|
Hence, it is not possible to evade bans by toggling
|
|
host mangling.
|
|
</para>
|
|
<para>
|
|
The second form (extban) is +b $type or +b $type:data.
|
|
type is a single character (case insensitive) indicating the
|
|
type of match, optionally preceded by a tilde (~) to negate the
|
|
comparison. data depends on type. Each type is loaded as a module.
|
|
The available types (if any)
|
|
are listed in the EXTBAN token of the 005 (RPL_ISUPPORT) numeric.
|
|
See <filename>doc/extban.txt</filename> in the source distribution
|
|
for more information.
|
|
</para>
|
|
<para>
|
|
If no parameter is given, the list of bans is returned. All users
|
|
can use this form. The plus sign should also be omitted.
|
|
</para>
|
|
<para>
|
|
Matching users will not be allowed to join the channel or knock
|
|
on it. If they are already on the channel, they may not send to
|
|
it or change their nick.
|
|
</para>
|
|
</sect2>
|
|
<sect2>
|
|
<title>+c, colour filter</title>
|
|
<para>
|
|
This cmode activates the colour filter for the channel. This filters out bold, underline,
|
|
reverse video, beeps, mIRC colour codes, and ANSI escapes. Note that escape sequences will
|
|
usually leave cruft sent to the channel, just without the escape characters themselves.
|
|
</para>
|
|
</sect2>
|
|
<sect2>
|
|
<title>+e, ban exemption</title>
|
|
<para>
|
|
This mode takes one parameter of the same form as bans, which
|
|
overrides +b and +q bans for all clients it matches.
|
|
</para>
|
|
<para>
|
|
This can be useful if it is necessary to ban an entire ISP
|
|
due to persistent abuse, but some users from that ISP should
|
|
still be allowed in. For example:
|
|
/mode #channel +be *!*@*.example.com *!*someuser@host3.example.com
|
|
</para>
|
|
<para>
|
|
Only channel operators can see +e changes or request the list.
|
|
</para>
|
|
</sect2>
|
|
<sect2>
|
|
<title>+f, channel forwarding</title>
|
|
<para>
|
|
This mode takes one parameter, the name of a channel (+f #channel). If the channel also has the
|
|
+i cmode set, and somebody attempts to join without either being expliticly invited, or having
|
|
an invex (+I), then they will instead join the channel named in the mode parameter. The client
|
|
will also be sent a 470 numeric giving the original and target channels.
|
|
</para>
|
|
<para>
|
|
Users are similarly forwarded if the +j cmode is set and their attempt to join is throttled,
|
|
if +l is set and there are already too many users in the channel
|
|
or if +r is set and they are not identified.
|
|
</para>
|
|
<para>
|
|
Forwards may only be set to +F channels, or to channels the setter
|
|
has ops in.
|
|
</para>
|
|
<para>
|
|
Without parameter (/mode #channel f or /mode #channel +f) the
|
|
forward channel is returned. This form also works off channel.
|
|
</para>
|
|
</sect2>
|
|
<sect2>
|
|
<title>+F, allow anybody to forward to this</title>
|
|
<para>
|
|
When this mode is set, anybody may set a forward from a channel
|
|
they have ops in to this channel. Otherwise they have to have ops
|
|
in this channel.
|
|
</para>
|
|
</sect2>
|
|
<sect2>
|
|
<title>+g, allow anybody to invite</title>
|
|
<para>
|
|
When this mode is set, anybody may use the INVITE command on the channel in question. When it
|
|
is unset, only channel operators may use the INVITE command.
|
|
</para>
|
|
<para>
|
|
When this mode is set together with +i, +j, +l or +r, all channel members can influence who can join.
|
|
</para>
|
|
</sect2>
|
|
<sect2>
|
|
<title>+i, invite only</title>
|
|
<para>
|
|
When this cmode is set, no client can join the channel unless they have an invex (+I) or are
|
|
invited with the INVITE command.
|
|
</para>
|
|
</sect2>
|
|
<sect2>
|
|
<title>+I, invite exception (invex)</title>
|
|
<para>
|
|
This mode takes one parameter of the same form as bans. Matching
|
|
clients do not need to be invited to join the channel when it is invite-only (+i).
|
|
Unlike the INVITE command, this does not override +j, +l and +r.
|
|
</para>
|
|
<para>
|
|
Only channel operators can see +I changes or request the list.
|
|
</para>
|
|
</sect2>
|
|
<sect2>
|
|
<title>+j, join throttling</title>
|
|
<para>
|
|
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.
|
|
</para>
|
|
<para>
|
|
Invited users can join regardless of +j, but are counted as normal.
|
|
</para>
|
|
<para>
|
|
Due to propagation delays between servers, more users may be
|
|
able to join (by racing for the last slot on each server).
|
|
</para>
|
|
</sect2>
|
|
<sect2>
|
|
<title>+k, key (channel password)</title>
|
|
<para>
|
|
Taking one parameter, when set, this mode requires a user to supply the key in order to join
|
|
the channel: /JOIN #channel key.
|
|
</para>
|
|
</sect2>
|
|
<sect2>
|
|
<title>+l, channel member limit</title>
|
|
<para>
|
|
Takes one numeric parameter, the number of users which are allowed to be in the channel before
|
|
further joins are blocked.
|
|
Invited users may join regardless.
|
|
</para>
|
|
<para>
|
|
Due to propagation delays between servers, more users may be
|
|
able to join (by racing for the last slot on each server).
|
|
</para>
|
|
</sect2>
|
|
<sect2>
|
|
<title>+L, large ban list</title>
|
|
<para>
|
|
Channels with this mode will be allowed larger banlists (by default,
|
|
500 instead of 50 entries for +b, +q, +e and +I together).
|
|
Only network operators with resv privilege may set this mode.
|
|
</para>
|
|
</sect2>
|
|
<sect2>
|
|
<title>+m, moderated</title>
|
|
<para>
|
|
When a channel is set +m, only users with +o or +v on the channel can send to it.
|
|
</para>
|
|
<para>
|
|
Users can still knock on the channel or change their nick.
|
|
</para>
|
|
</sect2>
|
|
<sect2>
|
|
<title>+n, no external messages</title>
|
|
<para>
|
|
When set, this mode prevents users from sending to the channel without being in it themselves.
|
|
This is recommended.
|
|
</para>
|
|
</sect2>
|
|
<sect2>
|
|
<title>+o, channel operator</title>
|
|
<para>
|
|
This mode takes one parameter, a nick, and grants or removes channel
|
|
operator privilege to that user. Channel operators have full control
|
|
over the channel, having the ability to set all channel modes except
|
|
+L and +P, and kick users.
|
|
Like voiced users, channel operators can always
|
|
send to the channel, overriding +b, +m and +q modes and the
|
|
per-channel flood limit.
|
|
In most clients channel operators are marked with an '@' sign.
|
|
</para>
|
|
<para>
|
|
The privilege is lost if the user leaves the channel or server
|
|
in any way.
|
|
</para>
|
|
<para>
|
|
Most networks will run channel registration services (e.g. ChanServ)
|
|
which ensure the founder (and users designated by the founder) can
|
|
always gain channel operator privileges and provide some features
|
|
to manage the channel.
|
|
</para>
|
|
</sect2>
|
|
<sect2>
|
|
<title>+p, paranoid channel</title>
|
|
<para>
|
|
When set, the KNOCK command cannot be used on the channel
|
|
to request an invite, and users will not be shown the
|
|
channel in WHOIS replies unless they are on it.
|
|
Unlike in traditional IRC, +p and +s can be set together.
|
|
</para>
|
|
</sect2>
|
|
<sect2>
|
|
<title>+P, permanent channel</title>
|
|
<para>
|
|
Channels with this mode (which is accessible only to network operators with resv privilege) set will not be destroyed
|
|
when the last user leaves.
|
|
</para>
|
|
<para>
|
|
This makes it less likely modes, bans and the topic will be lost and
|
|
makes it harder to abuse network splits, but also causes more
|
|
unwanted restoring of old modes, bans and topics after long splits.
|
|
</para>
|
|
</sect2>
|
|
<sect2>
|
|
<title>+q, quiet</title>
|
|
<para>
|
|
This mode behaves exactly like +b (ban), except that the user may still join
|
|
the channel. The net effect is that they cannot knock on the channel,
|
|
send to the channel or change their nick while on channel.
|
|
</para>
|
|
</sect2>
|
|
<sect2>
|
|
<title>+Q, block forwarded users</title>
|
|
<para>
|
|
Channels with this mode set are not valid targets for forwarding. Any attempt to forward to
|
|
this channel will be ignored, and the user will be handled as if the attempt was never made (by
|
|
sending them the relevant error message).
|
|
</para>
|
|
<para>
|
|
This does not affect the ability to set +f.
|
|
</para>
|
|
</sect2>
|
|
<sect2>
|
|
<title>+r, block unidentified</title>
|
|
<para>
|
|
When set, this mode prevents unidentified users from joining.
|
|
Invited users can still join.
|
|
</para>
|
|
</sect2>
|
|
<!-- not planned (jilles)
|
|
<sect2>
|
|
<title>+R, quiet unidentified</title>
|
|
<para>
|
|
When set, this mode prevents unidentified users from sending to the channel, although they can
|
|
still join.
|
|
</para>
|
|
<para>
|
|
Please note that this mode is not implemented in Charybdis 1.0.x, and is documented in
|
|
expectation for upcoming Charybdis 1.1.
|
|
</para>
|
|
</sect2>
|
|
-->
|
|
<sect2>
|
|
<title>+s, secret channel</title>
|
|
<para>
|
|
When set, this mode prevents the channel from appearing in the
|
|
output of the LIST, WHO and WHOIS command by users who are not on
|
|
it. Also, the server will refuse to answer WHO, NAMES, TOPIC and
|
|
LIST queries from users not on the channel.
|
|
</para>
|
|
</sect2>
|
|
<sect2>
|
|
<title>+t, topic limit</title>
|
|
<para>
|
|
When set, this mode prevents users who are not channel operators
|
|
from changing the topic.
|
|
</para>
|
|
</sect2>
|
|
<sect2>
|
|
<title>+v, voice</title>
|
|
<para>
|
|
This mode takes one parameter, a nick, and grants or removes voice
|
|
privilege to that user. Voiced users can always send to the channel,
|
|
overriding +b, +m and +q modes and the per-channel flood limit.
|
|
In most clients voiced users are marked with a plus sign.
|
|
</para>
|
|
<para>
|
|
The privilege is lost if the user leaves the channel or server
|
|
in any way.
|
|
</para>
|
|
</sect2>
|
|
<sect2>
|
|
<title>+z, reduced moderation</title>
|
|
<para>
|
|
When +z is set, the effects of +m are relaxed. For each message, if that message
|
|
would normally be blocked by moderation, it is instead sent to all channel operators. This is intended for use in moderated debates.
|
|
</para>
|
|
<para>
|
|
Note that +n and channel bans/quiets are unaffected by this. To silence a given user completely,
|
|
remove them from the channel.
|
|
</para>
|
|
</sect2>
|
|
</sect1>
|
|
</chapter>
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-namecase-general:t
|
|
sgml-general-insert-case:lower
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:2
|
|
sgml-indent-data:t
|
|
sgml-parent-document:("charybdis-oper-guide.sgml" "book")
|
|
sgml-exposed-tags:nil
|
|
fill-column:105
|
|
End:
|
|
-->
|