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
@CarrotNubbin
Add SymbolList: {} to the config. I will make a fix for that otherwise.
Huloo? Anyone there? This is kinda a serious-ish problem :l
I like it, but I can't seem to get the custom command to work. I've tried every combination of kick: true|false overrideKick: true|false customCommand: /tempban %name% 10m foul language onFinalWarning: kick|ban|custom
Can you pastebin a sample which would kick for 2nd warning and tempban on 3rd (final)?
@xavierarmadillo
Edited config to my liking... same error? http://pastebin.com/0RASMtp4
@CarrotNubbin
That's caused by the censorString in the config being wrong.
By default it should look like:
censorString: - flowers
You can add to it as well
censorString: - flowers - bananas - %name% - pickles
Tell me if that fixes it
@xavierarmadillo
http://pastebin.com/y5MJtPja
@CarrotNubbin
So, whats the error? I can fix it if you can send it.
Looks as if it is awesome, but when I run it, I get a NullPointerException... it looks like an internal error, no conflicts with another plugin :P
This plugin is amazing. Some options that need to be added is to disable kicking alltogether and only show the message that was blocked to people with the permission. Also, an option so you can disable the warning messages so it just sensors the word without the plugin saying anything.
@deleted_9024622
Added in 1.0.0.11 just for you!
Could you make it somehow so an staff member with an permission can manuall add an warning? (So you can use this as an warning system? :D)
@Terraquis
Word list has been moved to a new file per your request in 1.0.0.10.
@iPodHacks142
Added the custom command request.
Where can I see the source code? Can you also make a localization file for it?
I can't find the source code of this plugin...
@EpicATrain
I am working out-of-state and over 60 some hours a week currently, I will see if i can fit changes in to my schedule.
@iPodHacks142
If I have time I'll try to do that.
@Terraquis
Yes there are cases that it has issues. I've added the allow list to try and prevent that, also using the /b and /i in words should help as well.
It's very buggy. I use the Ships plugin, where players place signs reading [ships] to designate a ship, but whenever they do that, they get kicked for profanity. Random words are also blocked too.
Oh yes - could you have the word list be separate from the config file? It's not fun to open up the file to configure the plugin and be confronted with a barrage of words. Also, I have siblings who have a tendency to look over my shoulder while I work...yeah...not good.