ChatFilter
Chat Filter
Running a family server? Fed up of griefers not only griefing your world - but your chat too? Then you need new ChatFilter!
ChatFilter lets you set up a list of trigger words that, when matched in chat will cancel the message and send the player a custom message, be it a warning or just a friendly nudge. It can even kick offenders if required.
ChatFilter offers both part and whole word matching options, so you can block messages very intelligently.
You can also set up a list of words to trigger a custom server broadcast.
And, from v2.0.0 it now screens commands of your choice - e.g. /msg
Just download - run once - and then edit lang.yml to setup your filter words and trigger phrases.
ChatFilter is a lightweight plugin for when you want a simple solution for controlling swearing on your server.
You can see the default settings here . Warning contains the swear words that trigger warnings.
Current Version: 2.0.0
Config
kick: [true|false] Set to true to kick players who swear.
showInConsole: [true|false] Show player's name and the offending message in console.
censor: [true|false] Censor messages instead of blocking entire message.
agressiveMatching: [true|false] Attempts to match more words by looking for 3=e 0=o etc.
Edit lang.yml (created on first run) to change the trigger words, commands to filter and notification text.
Commands
/ChatFilter reload Reload settings from lang.yml
Permissions
chatfilter.reload
Allows user to reload.
chatfilter.canswear
Allows users with this node to bypass filters.
chatfilter.blockchat
Users with this node cannot chat.
chatfilter.canchat
Users with this node can chat.
Changelog
1.7.2: Changed permissions node for chat to chatfilter.canchat
1.7.1: Fixed config typo
1.7.0: Aggressive matching option. Permissions node to block chat completely.
1.6.0: Permissions node for reload. Colour support.
1.5.0: Permissions node to allow select users to swear.
1.4: Optional censorship mode. Replaced words with configurable text.
1.3: Config options to enable whole word matching.
1.2: Option to display information about blocked messages in console.
1.1: Added kick option.
1.0: First release.
Source Code
https://github.com/Sablednah/ChatFilter
Donations
Donations of any amount are, of course appreciated :)
Contributions go towards maintaining my development server to encourage continued development. ChatFilter is solo coded by me so if you think that time is worth something then hit the button in the top right! ;)
Is there a way to disable the profanity message? If not it'd be great if you would add something in the config for that, thanks.
Another thing is you should add a 'chatfilter.*' for giving all permissions
Also I came across a bug or maybe I'm doing something wrong. Here's my config.yml and lang.yml When saying "molést" ("molest" is on our profanity list) we recieve the profanity warning message but it does not censor it
Also when we tried to say "rápé" however, which was on our profanitywordmatch list, it would filter it.
@SableDnah
Well, I got it all sorted out eventually. Thanks.
Also, is there any way to filter tells? I am using CommandBook at the moment for such things and it seems to not filter them.
@ryvix
You shouldn't need too. It's set to default to true.
Depending on your permissions system you can add
-chatfilter.canchat
Or
To disable chat for a player.
@SableDnah
So does this mean that now if we update do we have to add in a chatfilter.canchat permission for everyone now?
@stutiguias
Ok that's swapped over now. Try again? If they can't chat add chatfilter.canchat to your default group.
@stutiguias
Ahh GM doesn't do the true false thing in he same way - i think it needs -chatfilter.blockchat With the minus in front to negate that node.
I'll probably swap back to KarylFStein's original proposal and have chatfilter.canchat instead :)
@SableDnah
YUS!
You sir, are a god among gods ;D
@SableDnah
Groupmanager Essentials and Vault !
@stutiguias
Apologies - i shall look into it. The new chatfilter.blockchat node is probably defaulting to true.
May I ask what plugin you are using for permissions?
@SableDnah
this update block all chat... the players can't say nothing... :( i rollback ...
@gabriel11798 Have put in a few letter substitutions. Try the new aggressiveMatching option in config :)
@KarylFStein
Permissions node added. Opposite polarity to your gestion - but same thing really ;)
chatfilter.blockchat - defaults to false.
Hope that helps :)
@KarylFStein That could work. I'll even see if I can have an option to set the permission on players who try to swear - a less restrictive punishment than kicking :)
I use this to block anyone joining who is not in an "approved" group from talking by using a swear filter of ''. I'm not too concerned about filtering chat after the user has been added to an "approved" group as the server is for my kids and their friends, etc., and I have to know who they are. But they wanted to be able to show people things they were doing without me adding their account, (I used to use the whitelist, but wasn't fast enough updating it for them), so I made the default access group so someone could view their worlds, but not interact with anything. I didn't want some random person somehow finding the site and saying inappropriate things in chat, and this plug-in lets me do that. Thanks for that!
My feature suggestion is to have some chatfilter permission setting that blocks all chat, but still lets me use the regular swear filter on people who have chat access. Like chatfilter.canchat (defaults to true, but if false has something like a nochatMessage: Sorry, you do not have permissions to chat displayed if they try to chat). Everything else works the same.
Thanks!
@SableDnah
I guess that's true....
DAMMIT INTERNET
@gabriel11798
Yeah as you see - the list of alternatives grows... 3=e !=i 1=i @=a ... etc... etc... and suddenly its not a chat filter - its a l33t decoder :)
Someone determined to swear will find a way. e.g. I bet not many american servers would put "wanker" or "fanny" in the list.
That said - I guess I can do the most common ones... I'll work on an "aggressive match" option and add in some of the more common alias'.
@gabriel11798
It's clever enough to be case insensitive and to ignore accents - so FúcK would get detected. But I'm afraid trying to find every punctuation variation of the words in the match lists would just be too big a hit whenever a message is sent... - and probably too many false positives too.
If you get players using those alot tho - adding "f*ck" and "pen!s" to your match list would help...
@SableDnah
Awesome, Another thing though: Can it block things like fu*k or Pen!s?
I'm glad someone finally created a light-weight plugin like this!
@gabriel11798
Colour support now in place ;)