Extended bans

More useful channel bans / exemptions / quiets / invite exceptions.

Extended bans allow different checks than the usual nick!ident@host (hostmask) matching. They extend the functionality of channel bans (+b), ban exceptions (+e), quiets (+q), and invite exceptions (+I).

On DareNET, extended bans are in the form of $[~]<type>:<data>. Where type is one character (case sensitive) that determines the type of match to be used. If the tilde (~) is used, the result of the check is negated (i.e., it has the reverse effect).

Types

The following types of extended bans are supported.

Type Name Description
a Account Matches account names. Accepts wildcards.
c Channel Matches users in a matching channel.
j Shared list Shares ban/exempt/quiet list for the specified channel.
n No nick change Prevents nickname changes from matching clients.
r Realname Matches against realname field. Accepts wildcards.
t Text ban Blocks messages matching specified text. Accepts wildcards. Only works with channel bans (+b).
u Unauthenticated Matches unauthenticated users (i.e., haven't logged into an account).
z CertFP Matches client certificate fingerprints.

Account (a)

The account type is matched against an authenticated user's account name.

Wildcards are accepted.

Syntax: $a:<accountmask>

Examples:

  • /mode #channel +b $a:trip - bans all users who have authed to the account trip
  • /mode #channel +e $a:trip - exempts all users who have authed to the account trip
  • /mode #channel +q $a*joe* - quiets are users who have joe in their account name
  • /mode #channel +q $~a:* - quiets all users who have not authenticated to an account

Channel (c)

The channel type matches users who are present in the channel specified.

Syntax: $c:<#channel>

Examples:

  • /mode #channelA +b $c:#channelB - bans all users who are present in #channelB
  • /mode #channelA +b $~c:#channelB - bans all users who are not in #channelB
  • /mode #channelA +e $c:#channelC - exempts all users who are present in #channelC
  • /mode #channelA +q $c:#channelB - quiets all users who are present in #channelB

Shared list (j)

The shared list type allows sharing of channel ban, exempt and quiet lists. To use this extended ban, you must be a channel operator in the channel whose list you are trying to share, and that channel must not be private or secret.

Syntax: $j:<#channel>

Examples:

  • /mode #channelA +b $j:#channelB - bans all users who match an entry on #channelB's ban list
  • /mode #channelA +e $j:#channelB - exempts all users who match an entry on #channelB's exemption list
  • /mode #channelA +q $j:#channelB - quiets all users who match an entry on #channelB's quiet list

Nick change (n)

The nick change type prevents nickname changes from users matching the specified hostmask.

Syntax: $n:<hostmask>

Example:

  • /mode #channel +b $n:*!*@* - prevents any user from changing their nickname while on the channel

Realname (r)

The realname type (also referred to as gecos) matches against a user's realname field.

Wildcards are accepted.

Syntax: $r:<mask>

Examples:

  • /mode #channel +b $r:*sub7* - bans all users with the string sub7 anywhere in their realname field
  • /mode #channel +b $~r:*awesome* - bans all users who's realname field doesn't start with the word awesome
  • /mode #channel +e $r:*jason* - exempts all users who have the name Jason anywhere in their realname field
  • /mode #channel +q $r:*script* - quiets all users with the string script anywhere in their realname field

Text ban (t)

The text ban type blocks messages that contain the specified text. This type only works with channel bans, and cannot be negated.

Wildcards are accepted.

Syntax: $t:<text>

Example:

  • /mode #channel +b  $t:*damn* - blocks all messages that contain the word damn

Unauthenticated (u)

The unauthenticated type matches uauthenticated users who match the specified hostmask.

Syntax: $u:<hostmask>

Example:

  • /mode #channel +I $u:*!sid*@*.irccloud.com - invite exception for unauthed IRCCloud users with a paid account

CertFP (z)

The certfp type is matched against a user’s client certificate fingerprint.

Syntax: $z:<fingerprint>

Example:

  • /mode #channel +I $z:FC46F3DBA1405B550CA06A597AF16A83194B6D1F62B9F594E6657AD429B9BB4D - invite exception for user’s with this certfp
Should you still need assistance, stop by #Help on IRC.