v5 Changelog

Newer changelogs can be viewed on the SpigotMC resource updates tab: https://www.spigotmc.org/resources/79616/updates


In this build

  • Fixed an issue where the Link & Ad Blocker would block whitelisted domains/links with https

  • Updated to the most recent TLD list from IANA (ver 2022112300). XN-- domains were omitted

  • Fixed an issue where auto punisher warning expiry in mass amounts would cause the server to hang

  • Patched rare database disconnect issue

  • Code cleanup & performance improvements


In this build

  • Significant code cleanup & optimizations


In this build

  • Various false positive fixes for the Link & Ad Blocker module

  • Added a new toggle chat 'blacklisted-commands' command list to config.yml. Commands on this list (without exemption permission) will be blocked when chat is toggled via /togglechat

  • Resolved a book listener unicode remover false positive if a page was left blank

  • Performance optimizations



  • 1.19 support



  • Link & Ad Blocker improvements & false positive fixes



  • Link & Ad Blocker improvements & optimizations


  • Resolved auto grammar incorrectly capitalizing two letter words at the start of messages



  • Resolved additional Link & Ad Blocker false positives in relation to extended period use

  • Updated to the most recent TLD list from IANA

  • Modified the TLD list to exclude especially uncommon tlds for better module accuracy

  • Added 6 additional default whitelisted domains most servers would likely allow to the Link & Ad Blocker configuration for a better setup experience for this module



  • Resolved numerous Link & Ad Blocker potential false positives

  • Various code optimizations



  • Fixed the Link & Ad Blocker failing to respect whitelisted domains if they included a protocol



  • The Word & Phrase Filter will no longer to attempt to censor segments over 15 characters to prevent excessive resource usage, as the longer the input the more work the plugin has to do to analyze the content


  • Fixed potential StackOverflowError related to the Word & Phrase Filter censor caused by very short blocked entries



  • New 'notify-when-censored' option added to the Word & Phrase Filter's censor options. This option determines whether the module should send Admin Notifier notifications when a message is censored. When set to false false notifications will only be sent when the censor fails to censor a message and has to block it entirely, or a nocensor:: entry is triggered. This option requires the Admin Notifier module to be enabled to take effect.


  • Improvements to the Word & Phrase Filter's censor. Symbols embedded within blocked entries can now be processed by the censor, reducing the rate the censor fails and has to block a message entirely

  • Improvements to the Word & Phrase Filter's partially-censor options internals. Fixed the potential for the module censoring extra parts of detected messages unrelated to the actual censored content

  • Improvements to the Link & Ad Blocker's subdomain detection. Links with any amount of subdomains are now supported instead of just one subdomain


  • Fixed the Link & Ad Blocker failing to detect links that started with a slash (ex. 'example message /google.com')

  • Fixed the Link & Ad Blocker failing to detect links with ports (ex. 'some.domain:25565')



  • Added autoReconnect=true property to MySQL connections to allow the plugin to reconnect to MySQL if the connection is interrupted

  • Fixed the chatsentry.togglechat permission failing to internally register



  • Added 42 new unicode chars to the unicode removers compatibility mode blacklist to resolve filter bypasses using any of those characters



  • New 'block-singular-message-spam' option for the Spam Blocker that lets the module block on a message-by-message basis messages that are likely be spam. Ex. players repeating the same or similar word or phrase over and over in the same message. Messages are determined as spam using a newly developed algorithm that takes character sequence repetition, word diversity, and character diversity into account. This option comes with a 'singular-message-spam-processor-sensitivity' sub-option that determines how sensitive the singular message spam component should be. Though new, this feature has been tested across thousands of production server chat messages and is considered stable. If you encounter any issues, please report them

  • New Spam Blocker lang message 'singular-message-spam-trigger' that shows when a singular message is flagged as spam by the module


  • Fixed the sign listener removing colorcodes from signs

  • Fixed potential for a SQL error when logging certain content

  • Fixed {PLAYER} placeholder in the Anti Relog Spam module failing to parse



  • Improvements to the Word & Phrase Filter's detection abilities

  • Improvements to the Link & Ad Blocker's detection abilities

  • Updated the top level domain list used by the Link & Ad Blocker to version 202112300


  • Reformatted censor options in the Word & Phrase Filter config to all be under a singular 'censor' node for better organization. Censor related options will be reset to default and may require reconfiguring.

  • New 'send-block-message-when-censored' option for the Word & Phrase Filter censor. When set to false, the block message will only be sent if the message could not be censored, or if the entry had a nocensor:: modifier

  • New 'partially-censor' option for the Word & Phrase Filter censor. This option makes the censor leave the first two letters uncensored to partially indicate what the censored content was

  • New 'nocensor::' Word & Phrase Filter entry modifier. If an entry with this modifier is found in a message, the message will be blocked entirely and not be attempted to be censored. Good for very vulgar language that you want to keep out of chat entirely. This modifier is stackable, meaning you can use it along with other modifiers, ex. 'nocensor::exact::'

  • New 'autowarn-when-censored' option for the Word & Phrase Filter censor. This option determines if Word & Phrase Filter Auto Punisher warnings apply if the message was censored. Has no effect if Auto Punisher warnings for the WAPF are disabled, or if the entire Auto Punisher module is disabled. This in conjunction with the new nocensor modifier allows you to apply warnings to players who attempt to use very vulgar language, but apply no warnings to people sending basic swears/other blocked entries that are censored

  • The Chat Executor now supports execution on signs and anvils with the new '{only_anvils}' & '{only_signs}' match node prefixes. These options require the sign/anvil listener to be enabled in config.yml as well. When using these new prefixes the entry will solely execute on anvils or signs


  • Fixed commandspy not respecting toggle preferences


In this build

  • Resolved line breaks (\n) not being respected in lang.yml entries

  • Word & Phrase Filter command & phrase whitelist no longer respects letter case

  • Fixed ClassNotFoundException caused by the network bridge


In this build

  • Potentially fixed EOFException related to network sync

  • Fixed potential NPE caused by ignored unicode char processing


In this build

  • Unicode remover:

    • resolved incorrect characters being caught with compatibility mode off

    • potentially resolved NPE caused by an invalid pattern

  • Fixed a typo in the default 'anti-chat-flood.trigger-too-long' lang.yml message


In this build

  • Fixed hex colors not working on 1.18 servers

  • Resolved a potential NPE caused by the unicode remover

  • Resolved an issue with the instance identifier

5.0.0 - Better than ever

Improvements & Reworks

  • All YAML-based storage has been replaced with SQL-based storage, which is much more efficient & reliable. You can configure whether you'd like to use SQLite (local flatfile) or MySQL (remote database) in the new storage.yml file

  • New dynamically adjusting task queuing systems allow the server to no longer hang or excessively lag when performing various tasks such as violation autoclean/cleanlog operations

  • Improved overall performance with various optimizations and additional asynchronous operations

  • Significantly improved the default blocked words list. It can be accessed at https://wiki.chatsentry.xyz/misc-info/preset-word-lists

  • Significantly improved the default Auto Punisher configuration. Delete auto-punisher.yml and reload the plugin if you wish to use it

  • Renamed various config options for improved clarity and to lower the chance of accidentally setting an option you didn't want

  • 15 previously unconfigurable messages from the cswarn and cswarnings commands are now configurable in lang.yml

  • Significantly improved the default module trigger lang messages with better clarity and writing. Delete trigger nodes in the file and reload the plugin if you wish to use them

  • Network file synchronization now only accepts files that are newer than the current ones in use by the receiving server instance, preventing overriding newer files with older versions of themselves

  • New 'ignored-unicode-chars' option in the unicode remover module that allows you to have certain unicode characters be ignored entirely by the module

  • Improvements to the World & Phrase Filters detection abilities


  • New Discord Notifier module that sends Discord notifications via webhooks when modules flag a message or action, players are manually or automatically warned, warnings are pardoned, autowarns expire, and when the Auto Punisher punishes a player. You can configure each aspect of the webhooks, as well as choose to use the same webhook or separate ones for each notification type. Messages are dynamically delayed to avoid Discord rate limiting

  • New Anti Relog Spam module that prevents players excessively relogging in short periods of time to flood chat. Uses a dynamically increasing cooldown to effectively combat excessive relogging without affecting players who are relogging reasonably.


  • The option to use the legacy url identifier has been removed as the experimental url identifier is now considered stable

  • Reorganized large portions of the main config file

  • Lots of config comments rewritten/improved for better readability

Bug Fixes

  • Fixed the Word & Phrase filter censor failing to work if there was any symbols in a message with a blocked word/phrase

  • Fixed "Command cannot be empty" error caused by the Word & Phrase Filter's censor when running commands with a blocked word/phrase in it

  • Fixed NPE related to the command processor

  • Fixed Anti Join Flood admin notifications not showing up if Anti Statue Spambot notifications were not enabled

  • Fixed manual warnings failing to internally register due to a caching error

  • Fixed exempt from Auto Punisher warnings permission not being respected

  • Fixed auto warning expiry working improperly under some circumstances

  • Fixed cslockdown's only exempt allowed message appearing as a blank kick message

  • Fixed certain characters corrupting violation logs

  • Resolved an issue with {proxy_player_cmd} executions

Note about additional proxy support & api improvements

Many of you know more proxies like Velocity and Waterfall were planned on being supported in this release along with API improvements. After lots of trial and error I've decided to push this support to a future update as it is not stable and needs sufficiently more work. It was the last remaining implementation that was holding up this release. I currently do not have the time to finish it quickly, but still wanted to release v5 with all the other improvements. I hope you understand why I made this decision. Though, the good news is that in the meantime, you can use adapters like Snap to run the plugin on Velocity!

Last updated