This document explains in detail how the new channels work.
As we all know, #channels are subject to collisions which
have very annoying side effects. Channel Delay is intended
to prevent the collisions, but is far from being perfect.
These new channels will make collisions extremely unlikely.
How does it work?
In order to make collisions impossible, the channel name
is assiocated to a unique ID. The pair (name , ID) will
thus be unique as well.
The channel real name is built by concatenating the
ID and the short name, for example, channel
"!foo" might be "!2B4dfoo". The ID has a
constant length which makes it easy to separate it from the
actual "friendly" name.
The channel creation must be requested. For example to create a the new channel foo, one must try to join "!!foo".
In addition to a unique name, these channels obey to soe
new simple rules:
- It is not possible to create a channel if one with the
same short name (but different ID)
- already exists
- has split recently (e.g. the channel delay was
set and hasn't expired. see definition below).
- It is possible to join a channel which has split
recently (if the modes allow it). In this case, the user does
not get oped. (Note that this differs from #channels which
get locked in such a case, until the Channel Delay expires
then allowing a user to re-create it, gaining chanop
- If only one channel "!foo" exists, it can be joined by
giving the short name only. The JOIN command is the only one
accepting shortnames for the channels
- If several channels have the same short name, but
different ID, a user can choose to join any of them by
specifying the ID.
- If a channel becomes opless, and remains opless long
enough for the Opless Delay to expire, all the
channel members will be optionnally oped.
- The channel delay duration is longer (60m) than for
#channels (15m). This is necessary to avoid several
channels having the same short name (but different ID) as
much as possible.
- The channel delay is set when any member splits.
- The opless delay is set whenever a chanop member leaves the channel.
As channel collisions are eliminated, it is possible to
enhance the mode system.
- general mode:
- user mode:
- O This mode is given to the creator of the channel by
the server, it cannot be passed or gained after the channel
was created. The creator is the only person able to
set/unset r modes, and set (but not unset) +a.