Extended Bans are a special type of bans (+b), exempts (+e) and invite exceptions (+I) providing "extended" functionality.
These bans start with a tilde, followed by a letter denoting the extban type. For example +b ~q denotes a quiet extban. UnrealIRCd comes with a number of built-in extbans (loaded through Modules). 3rd party modules may introduce even more types.
The following ban type can be used in front of any (ext)ban:
|t||extbans/timedban||Timed ban that will make a ban unset after the specified number of minutes.||+b ~t:3:*!*@hostname|
The following ban types specify which actions (join, nick-change or speaking) are affected by a ban:
|q||extbans/quiet||People matching these bans can join but are unable to speak, unless they have +v or higher.||+b ~q:*!*@*.blah.com|
|n||extbans/nickchange||People matching these bans cannot change nicks, unless they have +v or higher.||+b ~n:*!*@*.aol.com|
|j||extbans/join||When a user matches this (s)he may not join the channel but if already in the channel then all activities are permitted such as speaking or changing the nick. This can be useful to ban an entire ISP and then manually /INVITE people to the channel so once joined they can behave as normal.||+b ~j:*!*@*.aol.com|
|f||chanmodes/link||Forward user to another channel if matching mask.||+b ~f:#badispchannel:*!*@*.isp.com|
|m||extbans/msgbypass||Bypass message restrictions. This extended ban is only available as +e and not as +b. Syntax: +e ~m:type:mask.
Valid types are: external (bypass +n), moderated (bypass +m/+M), censor (bypass +G), color (bypass +S/+c) and notice (bypass +T).
These bantypes introduce new criteria which can be used:
|a||extbans/account||If a user is logged in to services with this account name, then this ban will match. This is slightly different than ~R, in the sense that a user with nick ABC may be logged in under account XYZ. Not all services packages support this, in which case you will have to use ~R instead.||+e ~a:SomeAccount
|c||extbans/inchannel||If the user is in this channel then (s)he is unable to join. A prefix can also be specified (+/%/@/&/~) which means that it will only match if the user has that rights or higher on the specified channel.||+b ~c:#lamers
|O||extbans/operclass||If the user is an IRCOp and the oper::operclass matches this name then the ban/invex will match. You can use this to for example create *admin* only channels.||+iI ~O:*admin*|
|r||extbans/realname||If the realname (gecos) of a user matches this then (s)he is unable to join. Since real names may contain spaces you can use a underscore to match a space (and underscore)||+b ~r:*Stupid_bot_script*|
|S||extbans/certfp||When a user is using SSL/TLS with a client certificate then you can match the user by his/her SSL fingerprint (the one you see in /WHOIS). Useful for ban exemptions (+e) and invite exceptions (+I).||+e ~S:0000000etc
|T||extbans/textban||Channel-specific text filtering. Supports two actions: 'censor' and 'block', see examples on the right.||+b ~T:censor:*badword*
You may also stack extended bans from the 2nd group with the 3rd group. For example: +b ~q:~c:#lamers would quiet all users who have joined #lamers.
Ban types from the 3rd group can be used in invite exceptions (+I). For example you can put the channel +i and then use +I ~c:@#trusted and/or +I ~a:accountname.