MooshFilter
MooshFilter
Version: 0.1.1 Beta
Created by Forhavu Mahea
Features
- Global mute
- Exempt players from global mute
- Chat censoring
- Smart profanity detector to prevent "getting around" the filter
- Add/Remove censored words
- Smart exception detector to prevent false positives
- Add/Remove exceptions
- Plain-text Modification
- Text files for easy modification of lists
- List of censored words
- List of excepted words
- Replace text files to match server memory
- Update server memory to match text files
- Text files for easy modification of lists
Commands
/censor <word> - Censors the specified word. This affects server memory, but not the text files.
/uncensor <word> - Uncensors the specified word. If the word is not in the censor list, it is added to exceptions. This affects server memory, but not the text files.
/muteall - Mutes all players except for those on the exemption list.
/MFoverwrite <profanities/exceptions> - Overwrites the chosen file to match server memory. Any changes made to file manually without calling "/MFload" will be lost. This is called automatically when the plugin is disabled
/MFload <profanities/exceptions> - Changes server memory to match the chosen file's contents. Any changes made with "/censor", "/uncensor", or "/muteall -e" will be lost. Use this after manually editing the text files to apply changes to server memory. This is called automatically when the plugin is enabled
Permissions
All command permissions follow the format of MooshFilter.<command name>
MooshFilter.seeUncensored - When someone's chat is filtered, players with this permission will be sent the uncensored message too.
MooshFilter.MuteAllExempt - Exempts player from any MuteAll effects.
Explanation of Smart Profanity Detection
The chat filter implements a regular expression to catch variations of profanities. For example, any extraneous symbols such as periods, slashes, etc. are ignored when checking. Spaces and repeating letters are also ignored. Letters or numbers after the detected profanity are also ignored, but letters or numbers before will not trigger the censor. Alternate symbols or "1337speak" are treated as regular letters (such as '$' and 's')
Example:
Censored word: test
Chat:
- "Take my test"
->"Take my****" - "I like testing"
->"I like****" - "I detest you"
->"I detest you" - "t e $ t me"
->"****me" - "pass the tttteeeeessssstttt"
->"pass the****" - "when is the ..t,3,..,s.'. $.,t....."
->"when is the****"
Exceptions work to catch false positives. As shown above, profanity found within a word isn't censored if there are letters or numbers before it (such as "detest"), however it is censored if the profanity begins the word (such as "testing"). But what if you didn't want to censor "testify" or "testified"? The exception detection works similarly to the profanity detection. Adding "testif" to the exception list using /uncensor will allow "testify", "testified", and anything else starting with "testif..." to bypass the filter and not be censored. This is particularly useful for words such as "assassin" and "hello" which may otherwise be censored.
Upcoming Features
This plugin is still in early beta, and more features are planned to be implemented soon. Any suggestions/requests for future features is welcome.
- Configurable censor phrase, to replace the default
**** - Configurable filters for websites and IP addresses for servers that wish to combat unwelcome advertisements.
- Spam detection
- Profanity filtering for private messages, signs, name tags, books, and other methods of displaying text.
- Logging system for admins to see the uncensored version of messages caught by filters.
- Point system for users caught by filters to encourage rule following. Upon reaching a configurable amount of points, automatic punishment may be handed out (warnings, mutes, and temp/perma-bans).
-
View User Profile
-
Send Message
Posted Apr 28, 2015Can a "silent" mode be added, similar to GriefPrevention's /softmute ? And can it also filter text in signs and books?
-
View User Profile
-
Send Message
Posted Nov 24, 2014This is a wonderful plugin! :) There are a few features that I would like to see:
1. An option to cancel the event of a player swearing. 2. customizable message that warns the offending player of their language.
Keep up the great work! :D