AntiAdvertiser
AntiAdvertiser makes sure advertisers can't steal your hard-earned players. It checks all chat messages, commands, signs and books for any type of IP addresses and domain names and gets rid of all messages that are found to be ads.
How it works
AntiAdvertiser listens to chat, commands, sign change and book drop events and runs some code. If the chat message, command, contents of the sign or contents of the book contain something detected as an IP address or domain name, the event is cancelled, staff members are notified. You may also run a custom command (mute or ban) or kick the player when they attempt to advertise.
Features
- Reject messages (or commands or signs or books) in real time, before they can be seen by other players. Without this plugin, players still see the ad even if you kicked the advertiser.
- Log all detections to a file
- Show the message that was rejected to staff so they can judge if it's against the rules or not.
- Execute a command on detection to mute/ban/whatever you desire the player upon advertising.
- API so other plugins can decide whether something is advertising or not as well!
- Custom blacklists and whitelists that can include regular expressions
- Disable any part of the plugin
Why AntiAdvertiser?
As a server administrator, you most likely want to protect your server from advertisers. There have been plenty of anti-advertising plugins popping up on Bukkit Dev lately, so why should you choose AntiAdvertiser?
AntiAdvertiser is configurable. You can define words that shouldn't be seen as advertising, you can create custom filters that can be as sensitive as you'd like them to be, you can disable any check. AntiAdvertiser tracks more actions than any other anti-advertising plugin.
AntiAdvertiser is the most up to date. There are two ways of detecting a domain name: A general regex (which detects any messages that contain a period, such as "Ender.man") or a list of TLDs. Most other anti-advertising plugins use the latter - the author defined a list of a few domain names (but most certainly not all) - AntiAdvertiser, on the other hand, uses a very recent list of top level domains obtained from the Internet Assigned Names Authority (the guys that are in charge of domain names on the internet). Version 1.1 will even add automatic filter updating (which will be completely optional) to make sure advertisers can't bypass the filters by using a recently added domain name.
Custom Filters
One of the great things about AntiAdvertiser is the customizability! You're able to define custom filters - we even have a few examples for you so you can easily also block the "clever" advertisers that replace the dots with spaces, for example.
More information on custom filters...
Plugin Conflicts
AntiAdvertiser should play well with most plugins, however if you have EssentialsChat installed, you need to give all players the following permission: essentials.chat.url - without it, Essentials automatically gets rid of the dots in messages.
Usage Data Collection
The plugin by default submits anonymous usage data to MCStats.org. The following information is collected and made publicly available in the form of graphs:
- Plugin version
- Server version (includes Minecraft version (1.7.9) and server software (CraftBukkit, Spigot))
- Number of online players
- Operating system information (name, version, architecture)
- Server information (country, number of CPU cores, Java version)
- The value of onDetect.action and whether you have a command in onDetect.command specified or not
You can opt out by editing /plugins/PluginMetrics/config.yml and setting opt-out to true.
Support
If you have any questions, simply leave a comment here on Bukkit Dev. If you've found a bug, please submit an issue report on GitHub (make sure the issue hasn't been reported yet).
Works nicely. I'll be more comfortable using it when there is a whitelist for urls.
This plugin works fine but when someone says an IP or domain blah blah... the console spits out this error:
Pastie: http://pastie.org/4888372
Hi,
I have tested the plugin with all three versions of Bukkit in use ("Latest downloads" at dl.bukkit.org) and it worked properly in all of them. It might be caused by a different version of Java from the one I used though, could you please tell me which version of Java do you have (also, 32 or 64 bit?).
And @Leonard1122334455, it currently logs all messages it rejects in "/plugins/AntiAdvertiser/messages.log". Or what do you mean by "Server-IPs"?
Is it able to keep all Server-IPs in a log or something like that? Would be funny :D
EDIT: Plugin doesn't work for 1.3.2:
http://pastie.org/4859758
@Random_Cow
i have fixed it i will see will the owner let me give it to u i have update the antiad and it all works and update the plugin all commands work and i am adding a Auto kick in it :D
@Random_Cow
i will see can i fix it for u
i am adding a no-ip block and (1)(2) block is That ok MrEinStain
This plugin dont work at all Heres the error 2012-09-27 06:53:13 [SEVERE] Could not load 'plugins/AntiAdvertiser.jar' in folder 'plugins' org.bukkit.plugin.InvalidPluginException: java.lang.UnsupportedClassVersionError: eu/aljaz/mc/antiads/Main : Unsupported major.minor version 51.0 at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:155) at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:305) at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:230) at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:222) at org.bukkit.craftbukkit.CraftServer.<init>(CraftServer.java:198) at net.minecraft.server.ServerConfigurationManagerAbstract.<init>(ServerConfigurationManagerAbstract.java:50) at net.minecraft.server.ServerConfigurationManager.<init>(SourceFile:11) at net.minecraft.server.DedicatedServer.init(DedicatedServer.java:105) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:378) at net.minecraft.server.ThreadServerApplication.run(SourceFile:539) Caused by: java.lang.UnsupportedClassVersionError: eu/aljaz/mc/antiads/Main : Unsupported major.minor version 51.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:634) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:277) at java.net.URLClassLoader.access$000(URLClassLoader.java:73) at java.net.URLClassLoader$1.run(URLClassLoader.java:212) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:44) at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:29) at java.lang.ClassLoader.loadClass(ClassLoader.java:321) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:144) ... 9 more
Sounds pretty good, but people can always do stuff like "Go to 12()34()567()89 for an epic server! replace () with periods!"