Log in | Back to darenet.org

Extended Bans

We have recently added support for extended bans to ircd-darenet, our server software. Extended bans gives channel operators more flexibility and control over their channel's ban list. The proper syntax for extended bans is as follows:

/mode #channel +b $type:mask

The following types of extended bans are currently 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 ban, (s)he will be unable to send messages to the channel.
$r Realname If a user's realname (gecos) 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 (quiet) and $n (nick change) are similar to normal bans, except that they allow you to control what a user can do without preventing them from joining the channel. $q prevents users matching the ban from sending messages/notices to the channel, while $n prevents them from changing their nickname.

Syntax:

/mode #channel +b $q:nick!ident@host
/mode #channel +b $n:nick!ident@host

Examples:

Let's say that we wanted to allow AOL users to join the channel, but prevent them from speaking. This could be achieved by setting the following $q (quiet) extended ban:

/mode #channel +b $q:*!*@*.aol.com

If we wanted to also prevent AOL users from changing their nickname while their in our channel, we could also set the following #n (nick change) extended ban to achieve that:

/mode #channel +b $n:*!*@*.aol.com

Channel and Realname

$c and $r are channel and realname (gecos) bans, respectively.

When $c is used, it will prevent users who are currently in the channel specified from joining your channel. When $r is used, it will prevent users who's realname (gecos) matches the ban from joining your channel. Note, $r treats '_' as both the underscore character and a space.

Syntax:

/mode #channel +b $c:#channel
/mode #channel +b $r:realname

Examples:

Let's say we wanted to prevent all users who are inchannels with the word warez in their name from joining our channel. We could achieve this by setting the following $c (channel) extended ban:

/mode #channel +b $c:#*warez*

Let's say we also want to prevent all users with the word bot in their realname (gecos) from joining the channel, as well. To do this, we could set the following $r (realname) 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