unrealircd_mods/man/block_masshighlight.md

3.3 KiB

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. ;];]