The goal of AntiAd is to help you maintain a server where people don't advertise, spam or write in all caps.
When a player is sending advertisement or spam in the chat it shows a message to the people with the permission `antiad.see` the advertised/spammy message - The advertising/spammy player gets a warning and a message that spam/advertisement isn't allowed (the message can be changed in the config).
We are doing this by giving everyone n (default 3) chances (resets with a server restart), when they used their 3 chances there a executed a command (the command can be set in the config).

Spotlight From EpicTimoZz


  • Essentials Chat: Essentials chat works well with AntiAd for the most part with the exception of URL filtering and perhaps some other modes. To allow AntiAd to take over and monitor for IP addresses and URLS... give your default players the following permission. -


  • Stop IP/URL on Sign.
  • Blocks spam (Large words, and Caps)
  • Detects Nicknames
  • Config file with lots of configurable options
  • Implemented permissions
  • Customizable ban and non-ban messages
  • Recognises websites and blocks them
  • 3 Warnings before action
  • Sepparate actions for spam and advertising, fully configurable
  • It also blocks URLs even if typed badly and prevents Spam.
  • Logging the spam and the advertising in the log.txt
  • Stealth mode so the players are not aware of AntiAd


/antiad addIt to add the URL's or IP's in the whitelist
/antiad reloadReloads the plugin, includes configuration

To Do:

If you have any suggestion that you would like me to add into the plugin, just post a comment or make a ticket of it.


We have made language support special for you :) Currently this languages is added to AntiAd

  • EN - English (2.1+)
  • ES - Spanish (2.1+)
  • DE - German (2.2+)
  • DA - Danish (2.2+)
  • FR - French (2.2+)
  • PL - Polish (2.2+)
  • RU - Russian (2.2.1)
  • CN - Chinese (2.2.5)
  • TR - Turkish (2.2.5)

To add it just put the DE,EN etc. in your config. if you want to add any new languages you can make a pull request on Github (where you also can make requests for changes)


Version 2.3.3 Changes:


  • added log config option, and made our logging more easily readable. (default it is on!)


  • The description of the time in the config was a bit to unclear what it was, this is just something we add to the ban command!


  • A problem where a large number (12 numbers) would be seen as a IP

Full history: Click Here


To determine popularity of this plugin, plugin installs are automatically tracked by the Metrics plugin tracking system. If you don't want to help or are paranoid, edit plugins/PluginMetrics/config.yml and set opt-out to true. But seeing more users makes me very happy.

AntiAd Statistics by Metrics

Metrics of AntiAd


I would like to thank everyone who has donated to AntiAd. I really appreciate it. :)

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of omgitsbob12 omgitsbob12 Jul 04, 2016 at 20:08 UTC - 0 likes

    Can you also port this to Sponge? I would really love to use this on my other server too! :D

  • Avatar of franzmedia franzmedia May 09, 2016 at 06:40 UTC - 0 likes

    @omgitsbob12: Go

    Can you describe more in depth what the problem is - this is the first time i have heard about a problem between banmanager and AntiAd - can i get you to create a issue on Github with your log (showing that one instance and your config)

    @Qalle: Go Thank you for the message, I have responded to you on Github and it something i will add as soon as i can :)

    Last edited May 09, 2016 by franzmedia


  • Avatar of Qalle Qalle May 09, 2016 at 00:08 UTC - 0 likes

    Could it be possible to use custom regex statements, instead of pre-configured filters?

    Also, this needs a softmute-esque feature, where the advertising message is only visible to the player sending it. You see, any filter, no matter how sophisticated or complex, can be bypassed once you know it's there.

    By simply blocking the message, and notifying the sender that 'Advertising is not allowed!' is not going to make them stop. It will block that one message, after which the player will immediately attempt to bypass it. They may not be sucessful the first or the second time, but in seconds, they have polluted the chat with the IP-adress or the name of the server they're advertising. Banning them is useless; the damage is already done.

    Banning the player for the first offense against the filter? Every filter, no matter how sophisticated or complex, will not work perfectly every time. There will be false positives. Going on every day to see if someone has been banned overnight, looking up the logs for it and then depending on the logs unbanning them, is not only annoying to the admins, but also to the players. Due to a simple typo, for example 'Hey.How are you doing?' instead of 'Hey. How are you doing?' (note the missing space between . and H) could potentially lead to being unable to join the server for the next 24 hours. That's not something I, as a player, would like.

    Any and all chat filter plugins are utterly and completely useless without customization. Every server has different needs.

    Any and all chat filter plugins are utterly and completely useless without a soft-mute type function, where the player is unaware of being blocked.

    I hope you will add these features to the plugin, so I and numerous others can start using it.

  • Avatar of omgitsbob12 omgitsbob12 Apr 23, 2016 at 02:08 UTC - 0 likes

    I'm using the BanManager plugin, and when a user is on the last warning the ban message shows up but the player does not get banned.

  • Avatar of franzmedia franzmedia Mar 17, 2016 at 07:51 UTC - 0 likes

    Version 2.3.2 got released 8 hours ago, we are currently waiting for it to be approved by bukkit :)

  • Avatar of franzmedia franzmedia Mar 03, 2016 at 07:36 UTC - 0 likes

    I need your input over at github, please come with your input to what we can improve :)

  • Avatar of franzmedia franzmedia Feb 27, 2016 at 18:54 UTC - 0 likes

    @foxi69: Go

    Replacetext.caps makes it lowercase Replacetext.advertisement replacement the stringent with advertisement as a string

  • Avatar of foxi69 foxi69 Feb 27, 2016 at 17:48 UTC - 0 likes

    replaceText: advertisement: false caps: true

    What does it will do?

    caps: true will do lowercase?

  • Avatar of niqoar niqoar Feb 27, 2016 at 11:30 UTC - 0 likes

    @franzmedia: Go


  • Avatar of franzmedia franzmedia Feb 27, 2016 at 10:43 UTC - 0 likes

    @niqoar: Go

    Can you post this on github with a link to your config and a small description :)?


Date created
Feb 13, 2013
Last update
Jun 22, 2016
Development stage
  • deDE
  • enUS
  • esES
  • frFR
  • plPL
  • ruRU
  • zhCN
Apache License version 2.0
Curse link
Recent files