[FR] more advanced bans
This is feature request. I know it can be easily implemented with scripts, but I will leave the idea here.
Currently setting ban-type is used only for users with +k flag and for revenge-mode.
The suggestion is to reuse this setting for bans (not good, as it would in fact limit usefulness of bans), add another default/channel setting (same not good) or enhance the +ban command (best way imho) to cover a more sophisticated bans.
The idea is to separate ban mask to detection mask and real ban mask. For example we want to add a ban to badnick!@, but the real ban will be put on this user's host according to its nick!ident@host filtered by ban-type or using the second ban-mask provided with +ban. This would be most useful for nick (mostly)/ident bans. Why? To ban users we do not know their new host at first, so we put a ban detector on known nick/word and then ban host to stop them coming back with different nick.
The preferred way would be to enhance +ban command from current:
### +ban <hostmask> [channel] [%<XyXdXhXm>] [comment]
to for example:
### +ban <hostmask> [$detection-hostmask] [channel] [%<XyXdXhXm>] [comment]
Note the "$" prefix to distinguish this argument. Because "#", "+", "!" and "&" are reserved for channel prefixes, "%" is used for ban-time when parsing arguments and "@" or "*" can be used for comments there are not many special characters left and "$" is unusable in nicks (at least on IRCnet).
I've messed this up, sorry. The $detection-hostmask should be per ban setting of $ban-type. The hostmask should act as detection-mask if this $ban-type was provided in +ban. So it should be:
### +ban <hostmask> [$ban-type] [channel] [%<XyXdXhXm>] [comment]