The "repeat" Module (v4)
Description
This module adds channel mode E
(repeat) which helps protect against spammers which spam the same message repeatedly.
Configuration
To load this module use the following <module>
tag:
<module name="repeat">
<class>
This module extends the core <class:privs>
field with the following values:
Name | Description |
---|---|
channels/ignore-repeat | Allows server operators to send repetitive messages to a channel with the E (repeat) mode set. |
Example Usage
Allows server operators with the class named BasicOper to send repetitive messages to a channel with the E
(repeat) mode set.
<class name="BasicOper"
...
privs="... channels/ignore-repeat ...">
<repeat>
The <repeat>
tag defines settings about how the repeat module should behave. This tag can only be defined once.
Name | Type | Default Value | Description |
---|---|---|---|
extended | Boolean | No | Whether to use the extended mode for actions. This allows punishing users with more than just blocking, kicking and kickbanning. |
message | String | Repeat flood detected (trigger is %lines% messages in %duration%) | The message to use when punishing users that hit the repeat flood trigger. |
maxbacklog | Number | 20 | The maximum size that can be specified for backlog. Set to 0 to disable multiline matching. |
maxdistance | Number | 50 | The maximum percentage of difference between two lines we'll allow to match. Set to 0 to disable edit-distance matching. |
maxlines | Number | 20 | The maximum lines of backlog to match against. |
maxtime | Duration | 0 | The maximum period of time a user can set. Set to 0 to allow any period. |
size | Number | 512 | The maximum number of characters to check for, can be used to truncate messages before they are checked, resulting in less CPU usage. |
The message field can contain any of the following template variables:
Variable | Description |
---|---|
%channel% | New in v4.4.0! The name of the channel the mode is set on. |
%diff% | The diff from the mode value. |
%duration% | The seconds from the mode value as a duration. |
%lines% | The lines from the mode value. |
%seconds% | The seconds from the mode value. |
Example Usage
<repeat extended="yes"
message="Repeat flood detected (trigger is %lines% messages in %duration%)"
maxbacklog="20"
maxdistance="50"
maxlines="20"
maxtime="1h"
size="512">
Channel Modes
Name | Character | Type | Parameter Syntax | Usable By | Description |
---|---|---|---|---|---|
repeat | E | Parameter | [~|*]<lines>:<sec>[:<difference>][:<backlog>] {ban|block|mute|kick|kickban}:<lines>:<sec>[:<difference>][:<backlog>] | Channel operators | Configures the messages that should be considered a repeat. If prefixed with ~ the messages are blocked. If prefixed with * then offending users are banned. If not prefixed then offending users are kicked. |
Example Usage
Blocks more than two repeated messages in five seconds:
/MODE #channel +E 2:5
Exemptions
Name | Description |
---|---|
repeat | Allows exempted users to send repetitive messages at a higher rate than channel mode E (repeat) allows. |