# block\_masshighlight This shit can halp you prevent highlight spam on your entire network. =] It keeps track of a user's messages on a per-channel basis and checks if they highlight one person too many times or too many different persons at once. Opers and U-Lines are exempt (as per usual), but also those with list modes `+a` and `+q`. ;3 When someone hits the threshold, a message will be sent to the `block_masshighlight.BLOCK_MASSHIGHLIGHT_OPERMSG` log event. In some cases you might wanna exclude a certain channel from these checks, in which case you can use channel mode `+B`. This can be useful for quiz/game channels. Couple o' thangs to keep in mind: * The module doesn't count duplicate nicks on the same line as separate highlights * The module doesn't exclude __your own nick__, because bots tend to just run through `/names` and won't exclude themselves __Config block:__ _The module doesn't necessarily require any configuration, it uses the following block as defaults_ block_masshighlight { maxnicks 5; delimiters " ,.-_/\:;"; action gline; duration 7d; reason "No mass highlighting allowed"; snotice 1; banident 1; multiline 0; allow_authed 0; //allow_accessmode o; percent 1; show_opers_origmsg 1; }; * __maxnicks__: Maximum amount of highlighted nicks (going over this number results in `action` setting in) -- __works in conjunction with `percent`__ * __delimiters__: List of characters to split a sentence by (don't forget the surrounding quotes lol) -- any char not in the default list may prevent highlights anyways * __action__: Action to take, must be one of: `drop` (drop silently [for the offender]), `notice` (drop, but __do__ show notice to them), `gline`, `zline`, `shun`, `tempshun`, `kill`, `viruschan` * __duration__: How long to `gline`, `zline` or `shun` for, is a "timestring" like `7d`, `1h5m20s`, etc * __reason__: Reason to show to the user, must be at least 4 chars long * __snotice__: Whether to send messages to the `block_masshighlight.BLOCK_MASSHIGHLIGHT_DETECTED` log event when users cross the highlight threshold, must be `0` or `1` (this only affects messages from the module indicating what action it'll take) * __banident__: When set to `1` it will ban `ident@iphost`, otherwise `*@iphost` (useful for shared ZNCs etc) * __multiline__: When set to `1` it will keep counting highlights until it encounters a line __without__ one * __allow_authed__: When set to `1` it will let logged-in users bypass this shit * __allow_accessmode__: Must be __one__ of `vhoaq` (or omitted entirely for no exceptions [the default]), exempts everyone with at minimum the specified mode from highlight checks (e.g. `a` includes people with `+q`) * __percent__: Threshold for the amount of characters belonging to highlights, not counting `delimiters` (e.g. `hi nick` would be 67%) -- __works in conjunction with `maxnicks`__ * __show_opers_origmsg__: Send the message that was dropped to the `block_masshighlight.BLOCK_MASSHIGHLIGHT_OPERMSG` log event (__this is entirely separate from the `snotice` option__) If you omit a directive which is required for a certain `action`, you'll get a warning and it will proceed to use the default. It should be pretty clear what directives are required in what cases imo tbh famalam. ;];]