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).
#
TypesThe 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