v3 Changelog
3.5.1 // Highly recommended stability update: bypass permissions fix, CE fixes, and more
Patches
Fixed module bypass and exemption permissions not being respected by the plugin
Fixed Chat Executor warnings failing to execute if enabled
Fixed Chat Executor logging violation type mismatch
Fixed some Chat Executor entries using {text} causing issues with particular match strings
Fixed some Chat Executor entries using {block} causing issues with sending unrelated messages and commands
Updated an outdated comment in the Anti Command Prefix config file
Any dashes in Chat Executor flags are now underscores for consistency with action and placeholder formats, make sure you update any {only-chat}s to {only_chat}, and so forth
Modified various default config examples for the Chat Executor
Fixed the Unicode Remover not working in global chat with compatibility mode off
Optimized related to the Anti Statue Spambot module
3.5.0 // Major new abilities for the Chat Executor
Changes & Improvements
This update adds major improvements to the Chat Executor. It's highly recommended to regenerate your chat-executor config or take a look at https://wiki.chatsentry.xyz/in-depth-chat-executor-guide-and-entry-examples to see some of its new abilities!
In Chat Executor actions, you can now use parts of the players message with:
"{arg}" to get the word/argument of the players message (starting from 0): ex "{arg1}" in "FirstWord SecondWord ThirdWord" is "FirstWord", "{arg2}" is "SecondWord", etc.
"{multiargs}" to get all the arguments/words after a particular argument/word. Ex "{multiargs2}" of "FirstWord SecondWord ThirdWord FourthWord" is "ThirdWord FourthWord"
You can use multiple {arg} and {multiarg} placeholders in actions. If the requested argument/word is not present, it will simply be blank.
Renamed the set-as nodes' "{BLOCK}" option to "{block}" in the Chat Executor
Renamed the set-as nodes' "{DONT_MODIFY}" option to "{dont-modify}" in the Chat Executor
You can now prefix Chat Executor match: nodes with "{regex}" to set the match type as regex
You can now prefix Chat Executor match: nodes with "{text}" to set the match type as plain text
Using none of the above prefixes means plain text will be defaulted to
You can additionally prefix Chat Executor match: nodes with "{only-chat}" to set the match to only apply to global chat and not commands
You can additionally prefix Chat Executor match: nodes with "{only-commands}" to set the match to only apply to commands and not chat
Using none of the above prefixes means both global chat and commands be defaulted to
Fixed an issue with metrics related to the Chat Executor
3.4.1 // Link & Ad Blocker intelligence improvements & Chat Executor patch
Patches
Significantly improved Link & Ad Blocker detection logic; more fine tuned and intelligent
The Link & Ad Blocker will no longer falsely detects most invalid domains such as "chatsentry.c" when using context prediction
The Link & Ad Blocker will no longer falsely detects common file names as links (ex. "chatsentry.jar") when using context prediction
Fixed Chat Executor notifications and logging not working on entries with '{DONT_MODIFY}' set
3.4.0 // New Chat Executor module, major code improvements, negated node recognition, and more
Changes & Improvements
Major code improvements & optimizations across lots of components of the plugin
Fixed the unicode remover not respecting compatibility mode on signs
Added a new "{player_cmd}:" execution type for the Auto Punisher to be used under punishment actions to execute a command as the violator player
The Chat Modifier module has been significantly revamped and renamed to the Chat Executor module. Old chat-modifier configs will be kept for reference for transferring to the new chat-executor config.
Major reconstruction to Chat Modifier / Chat Executor entry formats: "message:" nodes are now "execute:" lists that can contain the below action types to perform different actions
Added new "{player_msg}:", "{console_cmd}:", "{player_cmd}:", and "{broadcast}:" action types to be used under new Chat Modifier / Chat Executor "execute:" lists
Renamed the set-as nodes' "{NONE}" option to "{BLOCK}" in the Chat Modifier / Chat Executor; it still works the same internally and blocks the message from being sent
Added a new set-as node "{DONT_MODIFY}" option for the Chat Modifier / Chat Executor that will execute the actions on the execute list, but not modify the message at all
Restructured permission checks for all modules & restrictions to check permissions on all players in the case they have a negated / disabled node for a module to apply to them, despite having the bypass all permission. Useful if you want a group/player to bypass all modules/checks except select ones
Added an option in the config to disable the functionality of particular module and restrictions' bypass permissions and force modules to apply themselves to players even with bypass permissions or op. It's recommended you do this per-player/group with permissions by simply negating/disabling the bypass permission for modules/restrictions you'd like to apply to them if they have the bypass all permission. However, this option is available as a hard override. This option is also useful for testing purposes if you don't want to have to deop yourself to test a module or restriction
Added new & modified some existing comments in the Auto Punisher config
Added a check to skip trying to load Chat Executor entries if the entry numbering is invalid
Updated various contexts with Chat Modifier to Chat Executor internally and externally
Various modifications and additions to startup console messages
Various modifications to metrics
3.3.5 // WAPF Substitution intelligence & Chat Modifier patches
3.3.4 // Context prediction, module intelligence improvements, bug fixes, and more
Changes & Improvements
[IN BETA] The main configuration file has a new 'context-prediction' option. Context prediction aims to increase positive detections and decrease false positive detections through acting as a safenet for supported modules with sophisticated logic that dynamically adjusts thresholds and options real-time to react more precisely based on predicted context of messages. Adjustments are temporary & unique to messages; they do not permanently change any config options.
Significantly improved the Word & Phrase Filter's substitution intelligence logic
Made the Word & Phrase Filter's substitution intelligence character to character set modifiable to add support for more languages and give more potential for customization
Fixed the Word & Phrase Filter failing to detect (sufficiently long) blocked numbers
Misc. improvements and updates to metrics
Potentially fixed a NPE related to sign processing
Potentially fixed a NPE related to anvil processing
The Link & Ad Blocker no longer falsely detects acronyms
Misc. intelligence improvements to the Link & Ad Blocker
3.3.3 // All-around improvements & registration fixes
Changes & Improvements
Added a whitelisted commands list to the Word & Phrase Filter that allows commands (including all arguments) to be under all circumstances not processed by the module
Improved segments of legacy configuration updation code
Misc. other code optimizations and improvements
Misc. configuration comment improvements
Misc. console message improvements and changes
Misc. improvements and updates to metrics
Added new metric tables for new and renamed options introduced in recent versions
Updated the plugins description value in correlation with the plugin page & wiki in plugin.yml
Updated the info commands output in correlation with new and renamed options introduced in recent versions
Updated any notices in configs that the feature requires enable-<context>-listener (now process-<context>) in the main config to be enabled
Added missing context comments in the Unicode Remover's config file
Fixed capitalization of some module names in the info commands output
Fixes
Fixed "process-<context>" options in the main configuration failing to register, thus always defaulting to true
Fixed various issues with the command spy module failing to register certain configuration options
Fixed registered server commands failing to load on plugin startup (which also caused any processes that relied on them to not work properly)
3.3.2 // Ability to disable the vanilla spam kick & configuration improvements
Changes
Added an option to disable Minecraft's built in "Kicked for spamming" / "disconnect.spam" kick. There is no way to disable these kicks in the server configuration, however with a workaround ChatSentry can override it and prevent it from occurring. It's recommended to keep this enabled to give the auto punisher full punishment priority. This new option is enabled by default and can be found in the main configuration file.
Renamed "enable-context-listener" config options to "process-context". Old preferences are automatically transferred by the plugin.
3.3.1 // Anvil listener & unicode remover patches from 3.3.0
Patches
Fixed the unicode remover under some circumstances falsely detecting text that is not unicode
Fixed the unicode remover conflicting with the new anvil listener when adding enchantments to items
Fixed the unicode remover failing to detect unicode on items being renamed in anvils under some circumstances with compatibility mode disabled
Fixed a potential NPE related to the new anvil listener integrated with the Word & Phrase Filter, Link & Ad Blocker, and Unicode Remover
3.3.0 // Big update: module support to filter through signs, anvils, and books, cleanlogs command, bug fixes & more
Update Highlights
The Word & Phrase Filter, Link & Ad Blocker, and the Unicode Remover modules can now optionally additionally filter through signs, items renamed in anvils, and text written in books for complete complete protection across all contexts of messages! (enabled by default, disable particular contexts in config.yml)
New /kcs cleanlogs command! (requires new permission 'chatsentry.cleanlogs'). You can now easily delete old violation log data older than X days (or all violations) to tidy up large amounts of logged violations.
Other improvements & changes
Changed the default trigger messages for the Word & Phrase Filter, Link & Ad Blocker, and the Unicode Remover to make sense in the case it is triggered via a different context than chat
Improved a bunch of other default lang messages
Improved the ignore-detected-registered-commands options logic for the Word & Phrase Filter
Changed the default (and recommended) block-similarity-threshold in the Word & Phrase Filter to 0.84
Improved various configuration comments for clarity
Added new listener options in kcs infos output
Updated the dead link for the lookup command's in-depth usage in the lookup commands usage message
Changed various console messages for improved clarity
Fixed a typo in a hard coded kcs lookup message
Modified various hard coded messages related to the lookup command
Added the new /kcs cleanlogs command to /kcs helps output
Bug fixes
Fixed an issue that caused the Word & Phrase Filter to fail to filter the contents of commands with the command listener enabled
Fixed the potential for particular whitelisted entries conflicting with substitution intelligence in the Word & Phrase Filter
Fixed the potential for particular whitelisted entries conflicting with blocked entries in the Word & Phrase Filter
Fixed the low potential of a NPE error occuring when particular command arguments do not meet the syntax
3.2.0 // Major configuration improvements and other misc. improvements
Changes in this build
Improved lots of module configuration comments for better readability and consistency across the plugins files
Rewrote almost all module descriptions in config.yml
Reorganized module toggles in config.yml to be consistently ordered with the documentation
Synchronized repeated comments to be consistent across all files
Rewrote portions of various files
Improved default affected-commands lists in:
anti-chat-flood.yml
cap-limiter.yml
anti-chat-flood.yml
Added an affected-commands list to the auto grammar module to fix command incompatibilities
Fixed list indentation across applicable module configurations
Improved default commandspy-command-whitelist list in command-spy.yml
Updated base command version tag logic
Updated the beta console notification message with the new wiki domain
Changed the disable-join-flood-check-on-startup option duration from 1 min 30 secs to 2 mins 30 secs
Modified the anti statue spambots default join-command-whitelist list
3.1.1 // Unicode remover intelligence improvements
3.1.0 // Module support to process non English characters, major WAPF optimizations and misc. related fixess
Changes in this build
Virtually all modules now support processing any languages, whether the word or phrase filter, anti chat flood, etc!
Significant optimizations to the word and phrase filter module
Fixed various issues with the word and phrase filter failing to correctly process certain characters
Fixed whitelisted word entries in the word and phrase filter with more than one word potentially not being registered properly under some instances
3.0.6 // LAAB false positive fixes & misc. code improvements
Changes in this build
Improved various bits of plugin logic for increased intelligence and or efficiency
Fixed the LAAB module blocking whitelisted domains in emails
Fixed the LAAB module falsely detecting very exact numbers (ex. 1.123456789101112131415)
Fixed an issue with a utility method commonly used in command logic that caused the potential to (in rare circumstances) work improperly with particular command arguments
3.0.5 // Invalid lang key output with cswarning command fix, gendebug improvements, config improvements, and more
Changes in this build
Fixed cswarning related messages trying to send an invalid lang key from lang.yml
Fixed config comments appearing in some sections of csdebug output
Modified cs gendebug info outputs and various related console messages
Heavily modified comments in the word and phrase filter config, guide moved to the wiki and made more in-depth
Updated link in help page 2 output to new domain
Updated old wiki domain links in various configuration files to the new domain
Updated old wiki domain links in the changelog file to the new domain
Modified some configuration file comments for better clarity in various files
Added a new default example to the chat modifier
3.0.4 // Tiny change to where metric collection preferences are modified
3.0.3 // Config comment improvements, internal message improvements, & metric bug fix
Update Summary
This update adds some improvements to various config file comments, changes some hard coded messages, and fixes an issue with metrics.
Changes in this build
Fixed the currently running version comment in config.yml showing the wrong plugin version
Removed and or modified various comments in some configuration files for improved clarity
Modified the join update notification message
Modified the running latest version console notification message
Fixed an issue which prevented metrics from sending when the option was enabled
3.0.2 // Default & internal message modifications and other improvements
Update Summary
This update adds improvements to many default plugin messages found in lang.yml as well as some internal hard coded messages and some other misc. improvements. If you wish to use the updated modifiable messages, delete your lang.yml file & run '/chatsentry reload' to generate a fresh lang file.
Changes in this build
Modified a lot of default messages in lang.yml for better clarity and appearance
Updated '/chatsentry resources' output with the new wiki and plugin site links
Updated the update notification message with the new plugin update link
Updated plugin.yml plugin website value
Updated plugin.yml plugin description value
Misc. other internal message modifications
Better organized some of the lang.yml structure for consistency throughout the file
Fixed a problem with metric collection
Improvements to the plugins ability to detect and fail safe in the case there is corrupt / externally modified bytecode
3.0.1 // Less performance toll with lots of internal optimizations & improvements
Update Summary
ChatSentry is speedier than ever! This update adds tons of all-around optimizations and internal code improvements, including but not limited to the core data cacher and sub cachers in all modules, module data processors, the violation indexing engine, and more. Though the performance toll was already low, you can now expect even less of a toll from the plugin. You may also notice faster plugin reloads and startups.
Changes in this build
Code improvements and optimizations to almost every internal class
Improved the overall file structure of the plugin
Updated plugin.yml description value
Bug fixes
Fixed the (very small) chance of a NPE error on plugin startup
3.0.0 // The most polished and awesome version of ChatSentry yet!
About this release
Update 3.0.0 introduces major internal reworks and overhauls to how messages are dealt with and sent to users along with a large amount of other various improvements & optimizations.
This version is fully compatible with previous versions*: the plugins auto updater will take care of moving your current messages to the new file without data loss. * legacy update notice: the plugin can no longer version jump on the same config files and folder from versions before 1.1.2 to this version. If you're running a version before 1.1.2, update to 2.7.1, then to this version to prevent config data loss. Or better, do a clean reinstall of the plugin.
ChatSentry's terms of use have been updated; by continuing to use the plugin you confirm you accept them and will abide by them, effective the date of this release. The updated terms can be found here: https://kixmc.gitbook.io/kixmcs-product-resources/
Fun fact: though this update doesn't seem that big, it took over 30 hours of development work! (psst, please consider leaving a review as a thank you, it helps a lot!)
Changes in this build
Major changes & optimizations to plugin in-game message handler. All modifiable messages now go through a custom message handler engine instead of individually accessing the message file, allowing for a lot more flexibility and customization.
All previously modifiable messages (ex. block messages from modules) have been moved to the new lang.yml file to create a master language file where all modifiable strings can be found and edited. This makes it a ton easier to edit lots of the plugins messages quickly. The plugins auto updater will take care of moving your current messages to the new file without data loss.
Whether or not the plugins prefix is appended to message strings is now individually changeable per string, instead of hard coded to some strings and not others.
Any lang string in lang.yml can now be disabled entirely by setting it to "".
Any lang string in lang.yml now supports multi-line messages with the '{NL}' placeholder.
Quality of life feature: if the message-prefix is set to "" and there are other entries starting with "{PREFIX} ", the space after the prefix will be automatically removed to prevent a gap at the start of the message (this is to allow you to keep '{PREFIX} ' on lang entries seamlessly if the message-prefix is disabled).
The plugin now collects misc. anonymized data about your server & your use of ChatSentry to help improve the plugin. Data collected includes but is not limited to: whether or not you use particular plugin features (ex. the modules you have enabled), server version, java version, server region, and so forth. ChatSentry never collects data that could identify anybody or your server. All data gets sent and stored anonymously. You can disable the collection of metrics any time by turning metric collection off in the config.yml file.
Improvements to event handling and registration system.
Optimized the fetching of embedded commonly needed strings.
Major improvements to tons of core code and overall project structure.
Deleted misc-lang.yml.
Improvements to the legacy data updaters algorithms.
Deleted large amounts of legacy code related & other code unrelated to the new messaging system.
Further optimized various portions of remaining old code related to messaging (after the new system was integrated).
Modified various files comments for better clarity.
Tweaked various hard coded plugin messages sent in-game for better clarity.
Modified some existing console messages sent by the plugin.
Added some new console messages sent by the plugin under particular circumstances.
Turned a few previously modifiable messages into hard coded messages as editing them didn't make sense.
Added the plugins tagline to the console startup message.
Added the Chat Modifier module to /kcs info's output.
Added the Auto Grammar module to /kcs info's output.
Added the update checker to /kcs info's output.
Organized /kcs info's output and added pages.
Removed the word replacer from /kcs info's output.
Corrected the command bracket syntax on a few command usage outputs.
Updated /kcs help pages with command aliases for the pardononemanual, pardonallmanual, clearmodulewarnings, toggleviolationnotifs, and togglecommanyspy subcommands.
The Word and Phrase Filter module's default similarity threshold is now set to 0.83 on fresh installations of the plugin.
The Anti Chat Flood module's default repeated-character-limit is now set to 12 on fresh installations of the plugin.
Bug fixes
The tab completer no longer tries to auto complete 'clearchat', 'cc', 'togglechat', and 'tglc' after the plugins base command (which is an invalid command as these commands were made standalone a while back and are no longer ran with the plugins command in front of them)
Last updated