Spam Blocker

About this module

The Intelligent Spam Blocker module prevents players from repeating the same or similar messages over and over within a short period of time. The more times a player attempts to repeat a message when it's already being blocked, the longer before they will be able to repeat themselves again, creating a dynamic and infinitely expanding block period that will disallow spam bots trying to repeat the same messages over and over for long durations of time.

To bypass this module, op or the permission: "chatsentry.spamblocker.bypass" is required.

Config guide

You can access the below settings in the spam-blocker.yml file within the modules folder of the plugin's root folder.

Config excerpts taken from v3.6.0 and may not be completely up-to-date with the latest changes. To see the most up-to-date file, see below:

spam-blocker.yml

phrase-whitelist

The phrases below are phrases that the spam blocker will ignore, and can be said over and over.

Character case in the below list does NOT matter. Case variants are automatically checked by the plugin.

Set to "phrase-whitelist: []" to have an empty list.

phrase-whitelist:
  - "wb"
  - "welcome back"
  - "wbbb"
  - "weba"
  - "yes"
  - "yea"
  - "ok"
  - "sure"
  - "no"
  - "nope"
  - "nah"
  - "yup"
  - "yep"
  - "yeh"

phrase-whitelist-similarity-threshold

How similar must a message be to a phrase on the list above to be allowed through? (in %)

1.0 = exactly as one of the phrases on the list (excluding character case) 0.0 = not exact at all (this eliminates the purpose of the whitelist)

phrase-whitelist-similarity-threshold: 0.65

block-repeated-message-similarity-threshold

If a player's message isn't similar to one of the messages on the phrase-whitelist, the below threshold value is used.

How similar must a player's current message be to their last message(s) within the repeat-cooldown-in-seconds period in order to be blocked?

1.0 = message will be blocked only if it's exactly (100%) the same as one of their previous messages within the repeat-cooldown-in-seconds period. 0.0 = message needs to be 0% similar to their last message(s) within the repeat-cooldown-in-seconds period in order to be blocked. (this eliminates the purpose of the similarity checker)

block-repeated-message-similarity-threshold: 0.82

allowed-repeats

This is how many times a player can repeat any messages they said within the last (roughly) repeat-cooldown-in-seconds period of time before being blocked for spam (messages on or similar to the phrase-whitelist will be ignored).

allowed-repeats: 4

repeat-cooldown-in-seconds

How long after a player sends a message should the module forget that a player said the message? (and allow them to repeat it or a similar message again)

repeat-cooldown-in-seconds: 15

affected-commands

The below list will only work if "process-commands" is true in config.yml

The below list is which commands the module will apply to. It's recommended to only set these to your private messaging commands.

Set the list to "affected-commands: []" to apply the module to ALL commands (highly not recommended!)

Make sure to only include base commands; don't add any command arguments. (spaces)

affected-commands:
  - "/tell"
  - "/t"
  - "/msg"
  - "/w"
  - "/r"
  - "/whisper"
  - "/w"
  - "/pm"

Last updated