NoSwearing
Overview
This plugin prevents swearing on bukkit minecraft servers. It monitors chat messages, signs, /me commands, private messages, custom made items using anvil, books, and nicknames for restricted words in the config file. Offenders are stored in the config file. You can configure the plugin to kick or ban on the final warning.
This plugin uses regular expressions for words.
Features
Monitors
- Player chats
- Signs
- Private messages
- Items named with the Anvil
- Book text and titles
- Manual warnings
- Mute players for a configured time frame after swearing.
Flags
- Ignore OPs from any checks.
- Censor messages by replacing the restricted word with another, including player name (%name%).
- Words that are abused are also logged to show frequency.
- Block words like "d$%n", "d a m n", and "@$$" with the advanced option.
- Block single character words and check for swears using a queue for players who like to swear using separate lines.
- Additionally you can remove vowels from words to compare what players are writing.
- Numbers are removed during checks to thwart things like "da1mn".
- Patterns are checked for words like "dddaaaammmnnnnn". This would be flagged.
- Can censor using a random replacement word.
- Can run custom commands instead of kicking a player.
Allowances
- Standard word conventions such as apostrophes are permitted within certain restraints. "I'm", "don't", "you're" will not be flagged, while "cr'ap" would be flagged.
- Websites are allowed.
- & colors are not flagged.
- Symbols "-" and "_" are allowed in specific patterns.
- Online usernames are not flagged.
- Allow list is used to enable words with symbols like "o_O".
History
The reason that I wrote this was because I have been finding signs all over my server with restricted words and couldn't find a plugin that checked signs. I decided not to stop there and that is why this plugin restricts swearing in more than just chat.
Usage
Example:
- To block hell but not hello, the plugin understands hell!o as matching hell but not hello.
- Word borders are understood as /b. borders can only be at the beginning or end of a word.
- /i is used to ignore words for the removeVowels option.
Commands
- /ns warnings - View your current warnings
- /ns report - Report the last flagged word for owners review
- /ns info - View plugin info
- /ns add <word> - Add a word to the banned list
- /ns allow <word> - Add a word containing symbols to the symbols allowed list.
- /ns exempt <player> - Stop issuing warnings to specified player
- /ns notexempt <player> - Remove player for exempt list and continue issuing warnings
- /ns review - View all the words users flagged for review
- /ns remove <word> - Remove players request to review word
- /ns removeall - Remove all player requests for reviewing words
- /ns clear <player> - Remove warnings player has received
- /ns delete <word> - Remove a word from the banned words list
Permissions
- - ns.add
- - ns.allow
- - ns.exempt
- - ns.notexempt
- - ns.review
- - ns.remove
- - ns.remove
- - ns.clear
- - ns.delete
Configuration
Configuration file information Youtube review
Source Code
Source Download
Comments
Please give me input, thank you.
My website: http://www.graphicport.net
My server: http://minecraft.graphicport.net
Could you add the feature to run a console command when someone swears? Eg /jail
If you support regex, please correct your regex to correctly allow the proper input, IE \b instead of /b, otherwise my filter will never be compatible with your plugin.
Scott, great talking to you today on your server. My email is [email protected] and I'd love to discuss the external REGEX support with you.
Best, Joseph (JAG100)
@xavierarmadillo - I'd love to test 1.0.0.9 to determine if it fixes the sign issue. Typing all of the variations of upper/lower case for the naughty words is exhausting. LOL
Where can I download 1.0.0.9???
@JAG100
Try 1.0.0.9 and see if that fixes the sign issue.
@xavierarmadillo I just realized that using ANY capitalization in a bad word causes it to bypass your filter for signs. Epic & I were experimenting and found this out so the following variations slip right past your filter:
Fuck, fUck, fuCk, fucK - basically the filter is only blocking "fuck" on signs (as an example)
I was really hoping your filter would be the answer for blocking bad words on signs so this is a very disappointing thing to discover. Is there anyway you can fix the case sensitive nature of your plugin so it will block all variations regardless of capitalization?
Lastly, any possible way we could use Epic's REGex script with your plugin as an alternative to running? Could his REGEX script be used for language on the signs too?
Warmest Regards, JAG100
@x_clucky
You can filter ass and not grass with the plugin currently.
Could you make a language.yml file so we can configure the prefix and msg for each msg the plugin does
@xavierarmadillo
I feel we should be allowed to create custom Regular Expressions. EpicATrain's filter is great, I currently use it alongside PwnFilter and it works great, but there are a few things that I find in it that I do not find needed on my server, so I remove them. Hence why I say we should be allowed to use customization.
One thing that I did find missing in Pwnfilter was the ability to use ignore regex, which would ignore something that was censored if it matched that regex. It would work similarly to ignore string, with the exception that it would be a regular expression.
Ignore string works like this, say you have the regex a+s+s filtered out, you could set "ignore string grass" to prevent the censoring of "ass" in "grass".
@xavierarmadillo
Yes sir! Allow us to use EpicATrain's external REGex script please!
@xavierarmadillo
If you could allow the integration of my language filter into your plugin, EVERYTHING in minecraft can be filtered simply by using my script... you wouldn't ever need to add words or anything since I'm constantly updating the filter with new words.
I must have missed the fact that you have item name blocking! That's fantastic.
EpicATrain - Not sure where in Xavieramadillo's config file one can use external REGex files like yours but that would certainly be the finishing touch on an otherwise incredible plugin.
I run Pwnfilter with Epic's REGex script at the same time as Xavierarmadillo's plugin and they seem to work pretty well together. I'd love to forego the Pwnfilter and use Epic's REGex script for signs, item names, and generel chat. It would make Xaviermadillo's plugin incredibly comprehensive if support for external Regex scripts was offered.
@JAG100
Item block? As in with anvil? It has been there for a few releases now.
Hello. I will have to see what I can do. I am working a lot of overtime at work now. This has always used regular expressions internally. Are you saying allow custom ones?
Whoa! This now supports regex! Read the main page!
"This plugin prevents swearing on bukkit minecraft servers. It monitors chat messages, signs, /me commands, private messages, custom made items using anvil, books, and nicknames for restricted words in the config file. Offenders are stored in the config file. You can configure the plugin to kick or ban on the final warning.
This plugin uses regular expressions for words."
Mr Developer, are you around?
@JAG100
I agree, this needs RegEx support, and in addition to an "ignore string" option, an "ignore RegEx" option.
xavierarmadillo this is a really fantastic plugin and I especially appreciate the sign censoring! Is there any possibility you'd consider incorporating REGEX script the way Pwnfilter does? Pwnfilter is open source so it wouldn't be very hard to do. Currently, I'm combining your filter with Pwnfilter and the following very comprehensive REGEX script: http://pastebin.com/u/EpicATrain
If we could use a script like this with your plugin and also have it use that level of filtering for the signs, we'd be in heaven!
When do you think the item block solution will be in place? That will really be great!
Also, any plans to provide a solution to filter essentials MAIL in the future?
Best, JAG100
@nicknds
Hello.
I did a quick test and the variations you showed were caught just fine on my server. Can you send me a copy of your settings so I can test. Thanks.
I made a ticket trying to leave a comment, I never needed to.
Say "fuck" is blocked FUCK Fuck fUck fuCk fucK FucK These will all appear normally. Please make the plugin: Un-capitalize the message, then check for blocked words. Have the option to block capitals altogether or recurring capitals. Make it save the settings each time they're changed, it only saves when someone cusses or the server stops. Add a command to load the settings from file ie. /ns reload. '/ns info' does absolutely nothing.
Although I must say this is a great plugin.