Extended bans
Extended bans allow different checks than the usual nick!user@host (hostmask) match. They extend the functionality of channel bans (+b), ban exceptions (+e), quiets (+q) and invite exceptions (+I).
Syntax: $[~]<type>:<data>
Where type is one character (case sensitive) that determines the type of match that is to be used.
If the tilde (~) is used, the result of the check is inverted (i.e., has the reverse effect).
Types#
The following types of extended bans are provided by ircd-yeti:
Account (a)#
The account type is matched against an authenticated user's 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 all users who have joe in their account name
- /mode #channel +q $~a:*- quiets alll users who have not authed 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 who’s 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
Mark (m)#
The mark type is matched against a user’s marks, if they have any set.
Syntax: $m:<key>:<data>
Examples:#
- /mode #channel +b $m:gateway:mibbit- bans all users who have been marked as using Mibbit
- /mode #channel +q $m:gateway:tor- quiets all users who have been marked as using TOR
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
Operator (o)#
The operator type matches non IRC Operators.
Syntax: $o
Example:#
- /mode #channel +b $~o- bans all users who are IRC Operators
Gecos (r)#
The gecos type (also referred to as realname) matches against a user’s gecos (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 inverted.
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:*!*@*.irccloud.com- invite exception for unauthed users using IRCCloud
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