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
@seger10
That's been fixed.
Everytime I edit my configuration and reload/restart my server it resets to the default one. Could you please look into this?
@shaunnjessThere was a spelling error in previous versions with the ignore ops option.
Make sure it looks like: "ignoreOps: true" and NOT "ignoreOPs: true"
I will try to add something to identify websites and allow them.
hey! love the plugin! thanks for doing this! the only problem i'm having is i can't post a sign in-game with our server's website address on it. i'm op and have the config file set to true for ignore ops.
when i type the web address on the sign - www.website.com it replaces it with the censored word, then kicks me.
i can't figure out how to do this.
any ideas?
thanks again!
@ryvix
I have never used townyChat. I am not sure that I can help too much.
In version 1.0.0.3 your configuration overwrites any users input on a restart. For example I changed the config.yml to ignoreOps: false. After restarting the server it was back to being true.
Just thought I would let you know.
Hey, this sounds like a pretty cool plugin but I am having problems figuring out how to get it to work with TownyChat. Any ideas? Thanks!
@Terraquis I think that it will never be possible to block everything. If a player understands what the plugin blocks they can surely circumnavigate it. This plugin will block most offenses. In fact, my new version that I am working on blocks item names crafted by anvil, multiline swears ( as in one letter per line words), words with characters, and full out swear words.
I could add the ability to remove vowels as well. I just worry about how much performance is going to suffer as I keep adding more checks. Alternatively, if there is someone who says something that you don't like, you can always add the word in game using the /ns add <word> command.
Is there any way you could add a way for the plugin to detect common mispellings of words? For instance, I had one very obstinate player who kept on saying f***, except he left out the u. He was able to get away with it with the old plugin I used. Do you think you can create some way to see through that without too many false positives?
Wow! Thanks i'm sure this will really help my server! good job!