PwnFilter
Update: 2023-04-20 - PwnFilter EOL Statement
Major changes to chat from Mojang that include chat reporting and signed messages may render PwnFilter no longer usable. The developers of PwnFiilter have not maintained the plugin since 2016, and it has continued to work up until now. We don't see a new version coming out anytime soon and urge server owners to find an alternative. We hear good things about VentureChat - https://www.spigotmc.org/resources/venturechat.771/
-tremor.
About PwnFilter
PwnFilter is way more than just your average word-blocking plugin, PwnFilter uses the power of Regular-Expressions ("RegEx") to give you a highly effective and highly configurable plugin to filter anything you want from chat! Matching words can be rewritten, logged, blocked, and managed, depending on the rules you define. Use PwnFilter for:
- Extremely effective chat/command filtering: Filter anything you want with RegEx!
- Extremely effective curse/swear word filtering, warn users who use bad language, turn their profanities into harmless language, or just deny their message entirely!
- Assign appropriate punishment levels based on severity.
- Anti-Advertisement: IP/URL filtering
- Make fun chat replacements for your server's inside-jokes.
- Single line spam filtering: Remove repetitive characters like hiiiiiiiiiiiii to hi.
- CAPS Blocking capability
- Typo correction: Replace common and annoying typos like "teh" to "the" or "u" or "you"
- Customizable warning messages
- Command aliases: Automatically recognize a !command and change to /longer command, Stop yourself from accidentally sending those embarrassing .commands to chat for everyone to see.
- A few built-in punishments like burn, kill, fine (charge money!), warn, kick, and ban. Or simply utilize the "then console" action to make your server console execute almost any command from any other plugin as if you typed it yourself in the console window, especially if you use a plugin that adds a plethora of punishments, like PunishMental, or use it to make PwnFilter send the appropriate commands to your favorite ban-management system to let it handle what to do!
Think of this plugin as a platform for the power of RegEx, the matching rules are 100% entirely up to you, and there are a hundred ways to do something. The possibilities are endless, the power is as dynamic as you want it to be depending on how much effort you put into having the best RegEx rules.
PwnFilter is a revival and complete rewrite of the RegexFilter plugin by FloydATC. Thanks to DreamPhreak for helping with this Bukkit page, to Sage905 for taking over the latest branch of development making PwnFilter even better than ever, and to EpicAtrain for developing comprehensive regex rules for server owners to use.
Features:
- Filter Chat! (of course)
- Filter Item Names! (Anvil)
- Filter Signs!
- Filter Commands!
- Filter Console!
- Filter Books! (Coming in next version!)
- Filter Nametags!
- Built-in anti-spam feature can be enabled in config.
- Commands for OP or by permission node.
- Supports color message replacement.
- Globally clear all player's chat windows with "/pfcls".
- Global mute with "/pfmute" - stops all server chat and commands for making admin announcements.
- Command typos beginning with certain characters can be stopped (like . and 7, accidentally instead of / and &).
- Optionally recover those typos and execute the command as intended.
- Define your own macros or command aliases.
- Simple but powerful configuration with built-in debugging.
- Each regular expression is compiled only once => very fast.
- Able to reload all your PwnFilter rules & config files without needing to restart the server with "/pfreload".
- Optionally kick or warn players on rule matches AND/OR:
- Execute commands from console or other plugins.
- Use randrep action to replace swears with a random multiple option.
- Use lower action to replace text to all lowercase (great for those CAPS chatters).
- True command aliases, link faux commands like /wave to /me waves at you.
- Customizable 'permission denied' messages
Issues & Conflicts
Plugin Conflicts: If you notice that PwnFilter conflicts/interferes with another chat-related plugin, edit your config.yml, go to the "ADVANCED" section at the bottom, unhide the priority you want to change (by removing the # in front of the line), and change the priority from the default setting "Lowest" to another setting like "Highest". This can sometimes resolve conflicts, otherwise ask on our forum or create a ticket.
Permission Bypass: The permission node pwnfilter.bypass is automatically granted to OP and players with * permission nodes. If you do not want these players bypassing the filter at all, you must negate this permission node for them in your Permissions Plugin's files.
Plugin Metrics
This plugin utilizes Hidendra's plugin metrics system, which means that some information is collected and sent to mcstats.org. If you wish to disable this feature, you can do so by opting out, which you can do in the PluginMetrics' config file under /YourServer/plugins/PluginMetrics/
Links & Info
- PwnPlantGrowth - Customize, modify, block all plant growth with varying configurations, including biome based and light level based farming.
- PwnChickenLay - Configure or block how fast chickens can lay eggs, or replace eggs with other items like diamonds, bricks, anything you can think of.
- ResPwn - Configure useful and fun player respawn options like temporary forcefields, armor and weapons.
- PwnPvpBalance - Balance the tide of uneven game mechanics with options to help players with poor PvP skills be more competitive, and give good players a better challenge.
- PwnFilter Regex Forum - Have questions about using RegEx or want to show your rules.txt off? Visit our RegEx forum here on DBO!
- Pwn9.com - Visit the Pwn9 Gaming Community, the place we call home. Check out our Minecraft servers, other game servers and fun gaming community.
- Discord Server: Join us @ https://discord.gg/qde6rVn - feel free to ask PwnFilter or RegEx questions on the channel or just come hang out with us.
- Development builds of this project can be acquired at the provided continuous integration server. These builds have not been approved by the BukkitDev staff. Use them at your own risk. ci.sagely.ca
Donate
All of our "Pwn-" plugins are completely free of charge. We work hard to bring you the best, powerful, and up-to-date plugins. If we have helped you in any way, please consider a donation of any amount (Using the "Donate" button on the top-right of this page, or clicking HERE). All donations are GREATLY appreciated for all of the time that goes into this plugin and support.
EpicATrain's version 10.0 filter has been temporarily removed, due to a few issues. The classic language filter is still available here: http://pastebin.com/u/EpicATrain
-
View User Profile
-
Send Message
Posted Jan 6, 2013@xclucky
What you're asking for will require at minimum 2 plugins, which the 2nd plugin will need to be written from scratch. Then you'll need to remove the bugs between them... oh man, I see headaches galore.
-
View User Profile
-
Send Message
Posted Jan 6, 2013@tremor77 Is there a way that you could use another plugin that handles chat and have PwnFilter send the different chat to it? Heroes for example?
EDIT: AH... I do see a problem with that though... Then players wouldn't be able to hear other players in other channels... Damn... It's a good idea, but actually going through and doing it would be near-to-impossible, and even if it were done, it would probably be very CPU intensive, wouldn't it?
EDIT2: The only possible way I can see this being done is to have uncensored chat be sent to two different channels, then filter the censored chat between the two, having uncensored chat be sent to the uncensored channel (along with the rest of the chat) and the censored chat be sent to the censored channel (along with the rest of the chat)... Its possible... But it is probably very difficult to do, correct?
-
View User Profile
-
Send Message
Posted Jan 6, 2013@xclucky I can't think of any viable way to do this, EpicATrain is right on. This would be more of a channel chat function.. and it would have to be all or nothing, players would either need to be in the mature channel, or the global censored channel. Pwnfilter only listens to the playerchatevent, once the chat is passed on to the server the client handles what is received.
-
View User Profile
-
Send Message
Posted Jan 6, 2013@DreamPhreak
What he's saying is that only send filtered language to one group, and non filtered to another. that's a serious coding task.
-
View User Profile
-
Send Message
Posted Jan 6, 2013@EpicATrain
Well a makeshift way would be to have a subgroup/permission that is given to players who are over 13 years of age, and then have pwnfilter ignore people who have that subgroup/permission... But then, would also need a way to mark which filters would still be blocked anyways, and then everything gets complicated.
-
View User Profile
-
Send Message
Posted Jan 6, 2013@xclucky
Wow, that's a tall order. First you would need to sort players into a minimum of 2 groups. Second, pwnfilter would need to be rewritten. What you are talking about is sounding more like a client side mod rather than a server side. I do believe it can be done server side, but you're seriously asking for a lot of coding.
-
View User Profile
-
Send Message
Posted Jan 6, 2013Could you add the ability for a user with a certain permission node to be able to not have some chat censored? Allow me to explain what I am trying to do. I am wanting to allow users who can prove they are 13+ to be able to toggle off the chat censor (this is done on my website, please do not worry about making making a toggle xD), however, things such as ip addreesses and domain names will still be filtered. So basically, users with the node specified for that particular filter, will see the chat as it is before pwnfilter censors it. I do not knw how difficult this task would be, but I can imagine it would require changing quite a few lines of code. I look forward to hearing from you.
-
View User Profile
-
Send Message
Posted Jan 3, 2013@donald1440
There is an example page and there is also the forums pages, which is where I'd like the regex discussions to take place to keep main page clutter down... and keep the main page as a place to help with troubleshooting the plugin itself, since regex is such a big topic all on its own.
-
View User Profile
-
Send Message
Posted Jan 3, 2013Is there nothing about how to do a little advanced matching, just the basic?
-
View User Profile
-
Send Message
Posted Jan 1, 2013@AdrenalineqPiped statements match are like saying OR. So match damn|hell is like saying, if that chat matches damn OR hell.. then replace with X. So it's intended to group similar matches in each rule.
You can now use then randrep to randomly pick from a set of piped replacements.. like then randrep darn|heck - however, the order of the replacement does not match the order of the match, if that makes sense. lol. It's easy enough to just make a new rule for things you want to be very specific with.
-
View User Profile
-
Send Message
Posted Jan 1, 2013@DreamPhreak
hmm, but i need something like this.
Possible to make ? :D
-
View User Profile
-
Send Message
Posted Jan 1, 2013@Adrenalineq
or a different example:
Which would match crap, cr4p, craaaap (one or more of a's), cr4444p (one or more of 4's), and then change it to "derp"
This works by isolating the variation letters in parenthesis like the s in hor(s)e, but then adding a rule to it, the addition symbol: + to the end of the parenthesis like hor(s)+e.
The + rule simply means "one or more". The * rule means "zero or more", which makes the letters optional, but will still match all of it if its there, an example would be:
Which would match horse, hore, horsse, horsssssssssse, and so on, then replacing that entire matched word with "horse".
There is so much you can do with RegEx, some of the rules are simple enough for anyone to understand, but then it can get so complicated for almost any type of text search you need.
An example of getting slightly more advanced:
Which will match "horsse" EXACTLY, but NOT "horse" or "horssse" or "hore" or "horssssssssssssssssssssssse" and so on.
The {2} specifies an exact amount. If you wanted to match something like a range of letters, say 2-3, you would do:
Which will match horsse and horssse exactly, but not anything else like hore, horse, horsssse, and so on.
This is used in tremor's latest CAPS lowering code:
Which matches any string the person enters between 6 and 120. So if there were a five letter word like APPLE, it wouldnt get caught, but if it was 6 or more, like APPLES or APPLEPIE, it would get lowered, just as long as it gets caught in the range. So if you wanted to be more leniant on your CAPS blocking code, you could change the 6 to something higher, so smaller words wont get caught.
Have fun, and feel free to post any more questions. (sorry for the long post). :)
-
View User Profile
-
Send Message
Posted Jan 1, 2013Hey All, i have question namely someone have idea how to replace a bad word; example: horsse to "horse" without creating new rules at rules.txt because i want to change alot of words like this ;3 ?
-
View User Profile
-
Send Message
Posted Dec 31, 2012i love this plugin!
This makes managing a chat way more easy, als the channel mute is amazing, i use herochat and even though herochat sucks when it comes to working with other plugins, this one had no problem!
big ups for you guys
-
View User Profile
-
Send Message
Posted Dec 31, 2012Is there a way for this to hook into messaging?
I sometimes find advertisers using messages, which is hard to catch at times.
-
View User Profile
-
Send Message
Posted Dec 30, 2012Just a note Anyone using essentials chat, apparently something in their code changed and PwnFilter now works best using "priority: highest" as opposed to the default lowest.
-
View User Profile
-
Send Message
Posted Dec 30, 2012@LaxWasHereHere is how I do CAPS to Lower.. you might consider extending the 6 to like 8 to be less strict. Check the sample regex page (which btw, I think I need to update to include some of the newest features)
@everyone else - thanks for the compliments and glad everything is working good for you. Now I have to get ready for Bukkit 1.4.7 in a few days lol.
-
View User Profile
-
Send Message
Posted Dec 30, 2012Keep up the great work! I just installed it on my 1.4.6 R0.1 server and it's working like a charm!
-
View User Profile
-
Send Message
Posted Dec 30, 2012@tremor77
Hey, finally got to watch the videos. Pretty cool, learned some stuff I didn't know.
-
View User Profile
-
Send Message
Posted Dec 30, 2012@tremor77: Thx very much :)