Extended bans/en

Extended bans can be used to match a client on criteria other than IP or hostname. For example  can be used to add a ban exemption for someone who identified to services with SomeAccount. Extended bans can also be used to provide other "extended" functionality, such as blocking or censoring certain words in channels.

In channels, extended bans can be used in /MODE for bans, exempts and invite exceptions. Server admins can use some of these in Extended server bans as well.

In UnrealIRCd 5 extended bans start with a tilde (~), followed by a letter denoting the extban type. For example  denotes an account extban. In UnrealIRCd 6 we don't use letters but use names in extended bans, such as  for an account extban.

UnrealIRCd comes with a number of built-in extbans (loaded through Modules). 3rd party modules may introduce even more types.

Group 1: time limit
The following ban type can be used in front of any (ext)ban:

Group 2: actions
The following ban types specify which actions (join, nick-change or speaking) are affected by a ban:

Group 3: selectors
These bantypes introduce new criteria which can be used:

Group 4: special
These are special extended bans that don't fit anywhere else:

Combining extended bans
You can combine extended bans from multiple groups, this is called "stacking":


 * Group 1 + 2/3/4: You can stack extended bans from the 1st group with any of the other groups. For example,  would allow someone who identified to the services account TrustedUser to bypass channel bans for the next 1440 minutes (=24 hours).
 * Group 2 + 3: You can also stack the 2nd group with the 3rd group. For example:  would quiet all users who have also joined #lamers.
 * Group 1 + 2 + 3: You can even stack group 1 + group 2 + group 3 if you want, eg:  to quiet all users who have also joined #lamers and have this ban removed automatically after 5 minutes.

Invite exceptions (+I)
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.