Extended Bans
To conform with a wider selection of ircds, thus making life easier for everyone, we will be changing the extended ban delimiter from '~' to '$' in the next release of ircd-darenet (currently still under development). We will update this page to reflect the change once all servers have been upgraded.
We've recently added support for extended bans to our server software (ircd), which gives you more flexibility and control over your channel's ban list. The proper syntax for these types of bans is as follows:
/mode #channel +b ~type:mask
The following types of extended bans are supported:
Type | Name | Purpose |
---|---|---|
~a | Account | If a user's account name matches this ban, (s)he will be unable to join. |
~c | Channel | If a user is in a channel that matches this ban, (s)he will be unable to join. |
~j | Shared Bans | If a user matches a ban on the channel who's ban list is being shared, (s)he will be unable to join. |
~n | Nick Change | If a user matches this ban, (s)he will be unable to change their nickname while in the channel. |
~q | Quiet | If a user matches this bans, (s)he will be unable to send messages to the channel. |
~r | Realname | If a user's realname (gcos) matches this ban, (s)he will be unable to join. |
~t | Text | Allows you to specify text that will be blocked if a user's privmsg or notice to the channel contains it. * and ? wildcards supported. |
In This Guide: |
Quiet and Nick Change
~q and ~n, are similar to old bans, except that they allow you to control what a user can do without preventing them from joining the channel. ~q will prevent users matching the ban from sending messages to the channel, while ~n will prevent them from changing their nickname.
Syntax:
/mode #channel +b ~q:nick!ident@host
/mode #channel +b ~n:nick!ident@host
So, for example, if you wanted to allow AOL users to join the channel, but prevent them from speaking, you could set the following ~q extended ban:
/mode #channel +b ~q:*!*@*.aol.com
If you wanted to prevent AOL users from changing their nickname while in your channel, you could set the following ~n extended ban:
/mode #channel +b ~n:*!*@*.aol.com
Channel and Realname
~c and ~r are channel and real name bans. When ~c is used, anyone who is currently in a channel that matches the ban will not be able to join. When ~r is used, no one whose real name (gcos) matches the ban will be able to join (note: ~r treats _ as both the character _ and a space).
Syntax:
/mode #channel +b ~c:#channel
/mode #channel +b ~r:realname
So, for example, if you wanted to prevent users who are in any channel containing the word warez from joining your channel, you could set the following ~c extended ban:
/mode #channel +b ~c:#*warez*
If, for example, you wanted to prevent users with the word bot in their real name (gcos) from joining the channel, you could set the following ~r extended ban:
/mode #channel +b ~r:*bot*
Account Bans
~a allows you to ban users who are logged into accounts matching the specified account mask ban. It does not matter whether they are using hostmasking (umode +x) or not.
Syntax:
/mode #channel +b ~a:mask
So, for example, if you wanted to ban all users who's account names contained the word joe in it, you could set the following account extended ban:
/mode #channel +b ~a:*joe*
NOTE: These bans act identical to the previous method of banning user's based on their account name, e.g. /mode #channel +b *!*@accountname.* OR /mode +b *!*@accountname.*.darenet; however, you can use the reverse logic function with them, which you cannot do with the old method. We discuss the reverse logic function later in this guide.
Shared Bans
~j extended bans, also known as shared bans, allow you to use another channel's ban list.
Syntax:
/mode #channel +b ~j:mask
So, for example, let's say we wanted to use #shared's ban list with our own, we'd set the following shared ban:
/mode #channel +b ~j:#shared
Now, whenever a user tries to join #channel, they'll be checked against both #channel's and #shared's ban list. If a match is found, they'll be prevented from joining the channel.
Text Bans
~t extended bans, also known as text bans, allow channel operators to specify text that will be blocked if a user's privmsg or noticed to the channel contains it. * and ? wildcards are supported. Also, please keep in mind that this also affects channel operators, halfops and voices.
Syntax:
/mode #channel +b ~t:mask
So, for example, if you wanted to block all channel messages/notices that contained the word "damn", you could set the following text ban:
/mode #channel +b ~t:damn
Reverse Logic
If "!" is specified in an extended ban, then it will have a reverse effect. Please note this does not work with quiets. Instead, use excepts.
Syntax:
/mode #channel +b ~!<type>:mask
Example:
Let's say we wanted to an extended channel ban on #darenet with the "!" (reverse) flag, we'd use:
/mode #channel +b ~!c:#darenet
This would prevent anyone from joining #channel if they are not already in #darenet as well.
Assistance
Should you need assistance using the new extended bans feature, feel free to stop by #Support