NNSwearFilter is the first plugin of it's kind; It is a anti-swear plugin that uses neural networks in order to determine if a message sent by a player contains a swear word.
How does it detect if a message contains a swear word?
The way this plugin works is that it feeds the message the player has sent into the network, and slowly moves through each character. If it detects that a certain string of letters is similar to a swear word, it will block the message.
What happens if it does detect a swear word?
For the current version, the plugin just blocks the message from being seen by the rest of the players, and sends a message to the sender that the message contains a swear word. In future versions, I may be able to make it "censor" the word, but it will require the plugin to know how many characters ahead were a part of the swear word (whats the use of censoring part of a word?)
Are players able to bypass it by changing their message?
No, not really. Since the neural network is designed to look at patterns in text, changing "F*ck" to "F************CK", or "F***_GHE-CK" will not change the outcome.
Does this plugin print out false positive?
While testing it, I was not able to produce any false positives unless I "keymashed" random strings of text until it detected it. For general chat that happens on most servers, you should not run into any false positives. If you or another player run into any false positives, report it here and I can add "learning patches" to teach the network to allow those words.
This plugin collects stats using bStats:
Bestats only collects information regarding your system architecture, the server version, and plugin version. If you really do not want any of this information being sent, you can disable bstats by going into the config and setting: "enableStats" to false.