Supported Java version: 8+

[img] tag
XTextsCensor is an incredibly efficient plugin with a sophisticated text filtering system for your server. It can be used to fully automate the filtering of text that players write in chat, in an anvil, on sign and when editing books.
A necessary plugin for any type of server - from a regular lobby to a faction server!

There is no "special magic" or neural networks in the plugin - most filters use regex patterns to detect and filter the text you want. This makes the plugin filters a powerful, highly customizable system that, if properly and carefully configured, can recognize 100% of unwanted text!



Out of the box, the plugin has 6 filters available - a swear filter, an ip address filter, a domain filter, a special utf-8 character filter, a word replacement filter and a CAPS filter.
Naturally, each filter has its own whitelist - a set of words or regexp expressions that will be completely ignored when checking the text.
Also, for each filter there are customizable permissions for receiving notifications or ignoring the player when the filter is running.


Soft dependencies

  PlaceholderAPI

Automatic punishment system

The reaction of each of the filters to a particular event can be configured in detail as you need. Also, each filter has a very finely configurable section of automatic punishments that will be applied if the filter detects the search text.

  Scheme

Violations:
  ALL:
    '1':
      Event-result:
        Type: REMOVE_DETECTED
        Priority: 3
      Punishments:
      - "[LOG | WARNING] '{player_name}' uses restricted symbols: '{emphasized_message}'"
      - "[NOTIFY] §7'§c{player_name}§7' uses §crestricted symbols§7: ' {emphasized_message}§7'."
    '2':
      Event-result:
        Type: REMOVE_DETECTED
        Priority: 3
      Punishments:
      - "[LOG | WARNING] '{player_name}' uses restricted symbols: '{emphasized_message}'"
      - "[NOTIFY] §7'§c{player_name}§7' uses §crestricted symbolsp§7: '{emphasized_message}§7'."
  Section

All punishments of the players are stored in memory for 6 hours after recording and are deleted when the server is restarted.


Filters configuration

The basic configuration looks like this:

  Basic

and already contains settings for the CAPS filter, utf-8 special characters filter, domain filter, an example of organizing regex patterns for a swear filter and settings for ip-addresses.


Screenshots and GIF's
  Dropdown

Commands and permissions
[] | <> required and optional arguments.


- '/textscensor <help>' [Alias: /tc] - prints all plugin commands.

Permission: texts.censor.commands.help

- '/tc reload' - reloads plugin configurations.

Permission: texts.censor.commands.reload

- '/tc filters' - displays all loaded filters and their status.

Permission: texts.censor.commands.filters

- '/tc enable [filter identifier]' - enables the filter.

Permission: texts.censor.commands.filter.enable

- '/tc disable [filter identifier]' - disables the filter.

Permission: texts.censor.commands.filter.disable

- '/tc debug' - toggle debug mode.

Permission: texts.censor.commands.debug

- '/tc check [check type] [text]' - reloads plugin configurations.

Permission: texts.censor.commands.check

For any errors or suggestions, write to the discussion section.
If you use XTextsCensor and you like it, please rate and leave a review about it!