EndSwear
EndSwear
What is EndSwear? EndSwear is an anti-swearing plugin designed to either kick, tempban, fine, mute, or warn players who swear.
Features
- Punishment
- Point-based.
- Multiple options:
- Executing server commands.
- Temporary bans.
- Kicking players for swearing.
- Fining players (via Vault).
- Muting players.
- Blowing players up.
- Smiting players.
- Damaging players.
- Killing players.
- Simply warning players.
- Phonetic matching:
Suppose that player "FreeSpace2" thinks he is being clever. Instead of saying "foo", which is a swear word, he says "fooo". But, with Fuzzy matching, EndSwear can see that he is trying to swear and still punish him!
- Censoring only the swear words!
Configuration
Permission | Command | Action |
---|---|---|
EndSwear.info | /swear info [player] | Gets player data. |
EndSwear.add | /swear add [word] | Allows the addition of words to the swear dictionary. |
EndSwear.whitelist | /swear whitelist [word] | Allows the addition of words to the swear dictionary. |
EndSwear.list | /swear list | Allows the listing of all swear words |
EndSwear.contains | /swear contains [word] | Allows users to see if a word is in the dictionary. |
EndSwear.pardon | /swear pardon [player] | Allows clearing a person's swear history. |
EndSwear.bypass | Bypass the swear filter. |
More configuration help is here. EndSwear now uses MCStats to collect usage information. No personal data is collected, and if you want to turn off statistics collection go here.
Suggestions
Do you have a suggestion? Comment it or PM me!
Support
Comment below, and I will try to help.
Upcoming Features
More threading and speed improvements.Configurable messages.Muting.Phonetic matching.Explosions!Configurable BleepsDamage!Lightning!Point-based punishmentsSingle-jar fileAdaptable point-based punishments.Automatic pardon.Sign censorship.Whitelist.And at long last... a working reload command!- Yet better matcher!
Contribute
Like EndSwear?
via Bitcoin (1GQdmRqKF4ZYCSsyKJfVuyCu8HcdW1PFuX|)
Want to help? PM me! (You will have no obligations!)
use bug "plugin combattag", kick, leave pvp :( consumption of threads?
@BeastGamer
That is a REALLY bad bug. As for the custom swear replacements... Things like the asterisks and colors would be do-able, but word replacements would take a lot of recoding. I will see if I can get it to work.
I deleted config, reloaded, and listed words. I'm still de-opped without the permissions, and I can still swear. Maybe it's because I have a plugin that changes the chat color? You should make it strip colors off of the message before handling it.
Edit: Yes, it was the chat colors. Could you also add the possibility to set the "bleep" to a series of asterisks, equal to the number of characters in the original swear, or simply have it replace with a configurable word? Maybe even have a customizable color for all of the instances of swear words?
Asterisks Example:
<Player148> Shit shiiit
Turns into
<Player148>
**** ****
Word replace Example:
<Player148> Shit
Turns into
<Player148> bobba
Colorize and asterisks Example:
<Player148> I need to take a shit
Turns into
<Player148> I need to take a
****
@BeastGamer
Can you get rid of the last three lines and then do a /reload? Because on my testing server, it works just fine. Also, type /swear list to make sure that the word is there. If there is still a problem, download EndSwear v3.1, and see if that helps.
Also, phonetic matching breaks words into their consonant sounds, and then checks for a match.
I think something is wrong with the plugin again. The swearing isn't filtered. I am de-opped, have no bypass permission, and my config is set up correctly. It doesn't even say I have sworn.
I would also like to know how the whole "phonetic mode" works. Does it look at the spelling of how it would be pronounced, and check against the original swear, or what?
@WayGroovy
The plugin does keep records of people's swearing - Just type /swear info [PLAYER] to see them.
Also, explosions... would be cool :D
Are any other vault interfaces available? I would love if this recorded the number of infractions on a per player or per IP if possible. I would love to have different effects for different infraction levels. I do not run an economy, but do want to punish players in game. I would love to clear their inventory, kill them, explode them, or other effects if possible. Keep up the good work, and thanks.
@MoonPie2000
If you don't have Vault, then don't worry about configuring the plugin. It doesn't care about all of the money stuff unless you set the action to fine, and if you do and Vault isn't installed, it will just not do anything.
The kicking I thought would be better if it kicked after every swear (which I now realize is a confusing idea). I think that the best way for you to get around that, (at least until the next version comes out) is to set the action to tempban and then set the time to 1. Also, thank you for telling me that the configuration is bad, because there is no way I would have found that on my own :D
@poks999
OK. I will add that in with the next version.
What about adding a permissions node to bypass the swear filter/kick, Allowing for instance admins to say certian words that normal players cant?
@BeastGamer
The problem with the algorithm is that it exponentially increases the power needed as the length of the strings go up. And, it cannot match whole sentences, because of the sheer amount of differences possible, so it instead breaks it into words, and starts looking through them manually. So f4 rt will not be matched with fart, because they are spaced. I still cannot think of or find an efficient way to do this, so, I can't.
If you give me an email address or so, I can send you the class that does the matching.
Also, when the Bukkit API finally has a BookDone event, I will make a spell checker. Or, at least attempt to.
One other question. Does this filter pick up words separated by spaces, or replaced with numbers?
Let's say someone types:
and
fart
is a word you are filtering out.
It takes the original "swear", and weighs against the entered swear, right?
So with inserting/removing/replacing characters, it picks up on any character change from the original swear, correct?
I would actually really like to learn the formula for this, as I could see this being useful in other scenarios, such as an auto-correction plugin and what-not.
@BeastGamer
It uses the Levenshtein distance (If you want a nice explanation, look here) which is a numerical indicator of how many insertions, deletions, and substitutions are required to change from one string to another.
The reason for not using RegEx was that it was made for searching, not matching.
@TheMultiplayer
No, thank you for making a great plugin. Might I ask, how does the "fuzzy matching" work? Regex?
@BeastGamer
Yeah, the player information is started from 0 - which is a problem. As for bleeping, I just looked at my code, and realized that I have a bad logic section. I will fix them for the next version, which should be out soon.
Thank you for informing me of those bugs though!
Hi, I'm using your plugin, and I've noticed 2 things.
First, when it warns the player the first time, it says "0th", instead of "1st", and increases from there. Maybe you did put the increments on the right rather than on the left of the variable?
Second, bleeping doesn't seem to work. Here's my config:
OK, version 2.0 has a SEVERE bug. So you should switch to 2.1.
thanks