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
@LeBastiofficial
It still works on 1.8
@tubelius Probably
If players are muted by essentials they can still message if they violate the no swearing system.
i.e. I have just been muted, I can't message with normal chat, but if a use a word that isn't allowed on NoSwearing I can still chat.
Also, please make a reload config command, or make it so i can upload a config and on the restart it'll use the new config, at the moment the server has to be offline whilst uploading a file which is terrible for any server that wants to actually do well :D
how to allow player swearing ?
Thanks for creating this plugin. Very helpful, but I notice that after the "final warning" it stops taking action as if the final action is always to ban. I chose 60 minutes in jail as the final action expecting it would continue to jail the player each time they swear after the warnings were exhausted. Is that possible? (craftbukkit 1.7.9)
Thanks!
Hi! I'm a server owner (MC.DarkWolfGames.Net) I was wondering if you can disable the announcement saying why the player was kicked? It would be nice! PM me if you use it! Or if it is already possible.
Can you add changeable prefix?
Nice plugin. Why is ns.remove twice in the permissions list? Is the other one supposed to be ns.removeall?
Awesome thank you :) Do you have a Dev builds site?
@Interested
Hi, yes it seems the player name exemption isn't working. F@ck should be blocked is you are blocking symbols. If I fix the player name thing that should help. The allowed list is more for adding in things like "0_0", not individual symbols.
Lemme see what I can do.
@NickLanding
Lemme see what I can do.
Hi :) , first of all, AWESOME plugin! it does everything and causes no lag! I just have one question, I want to stop stuff like F@ck and the likes, but I also want to allow things like '_' for player names. eg. a player name of Minecraft_rocks will get blocked, when anybody says it in chat. I've tied putting _ in the Symbol place in config and also in the Allowed symbols in the word list, but I've had no joy. Have you any examples to show me what I'm doing wrong? Thank you.
Also - GamerKing195 You must have corrupted your config file that is the only way that would have happened. Remove the jar from your plugin folder and restart the server - then put the jar back in and restart. You will then have a new config file. THEN - MAKE A COPY of the config.yml ... that way if you corrupt it again you will have a fall-back. Do this each time you have your config at a working level.
VitalGrigoryev You cannot add words to the words.yml file while the server is running unless you use the in game commands. To add words directly to the file, you have to stop your server and then add the words/file and then restart. I suggest you have your file prepared off line and then copy it across. Again - Take BACKUPS, before and after.
can you post your code on github?
The config well not load! When I download the plugin and restart the server then go to the newly created folder and check out the config this is the only thing in it
---Added words are removed from words.yml file when restart server and the need to add the words again, fix it please! (((( NS1.0.0.16 - bukkit 1.7.2
my hat is off to you! i just installed this and i am very impressed. it works so much better than the last filter i had. i look forward to future updates and features! is it possible to have different levels of punishment depending on the word. eg, instant ban for the f-bomb and several warnings for "crap"? also, is it possible to black/white list phrases?
ns.remove is under Permissions twice:
Permissions - ns.add - ns.allow - ns.exempt - ns.notexempt - ns.review - ns.remove - ns.remove
@server075
The only way it could lag is if there were thousands of words.
if I add more words to the list will it lag the server or chat ?