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).
Hello, it's me again. It seems that your plugin AntiAdvertiser is causing my Spigot 1.10 server to crash, at seemingly random intervals.
Here are the logs take from time of the incident. This has happened a few times by now and the logs are identical.
[21:24:45] [Craft Scheduler Thread - 602/WARN]: [AntiAdvertiser] Plugin AntiAdvertiser v1.1 generated an exception while executing task 28
java.lang.NoSuchMethodError: org.bukkit.Bukkit.getOnlinePlayers()[Lorg/bukkit/entity/Player;
at net.unknownmc.antiadvertiser.AntiAdvertiser.getOnlinePlayersAsCollection(AntiAdvertiser.java:316) ~[?:?]
at net.unknownmc.antiadvertiser.Metrics.postPlugin(Metrics.java:335) ~[?:?]
at net.unknownmc.antiadvertiser.Metrics.access$400(Metrics.java:57) ~[?:?]
at net.unknownmc.antiadvertiser.Metrics$1.run(Metrics.java:223) ~[?:?]
at org.bukkit.craftbukkit.v1_10_R1.scheduler.CraftTask.run(CraftTask.java:71) ~[spigot56.jar:git-Spigot-72c2605-709783c]
at org.bukkit.craftbukkit.v1_10_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:52) [spigot56.jar:git-Spigot-72c2605-709783c]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_111]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_111]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_111]
[21:24:48] [Server thread/ERROR]: Encountered an unexpected exception
net.minecraft.server.v1_10_R1.ReportedException: Exception ticking world
at net.minecraft.server.v1_10_R1.MinecraftServer.D(MinecraftServer.java:794) ~[spigot56.jar:git-Spigot-72c2605-709783c]
at net.minecraft.server.v1_10_R1.DedicatedServer.D(DedicatedServer.java:400) ~[spigot56.jar:git-Spigot-72c2605-709783c]
at net.minecraft.server.v1_10_R1.MinecraftServer.C(MinecraftServer.java:668) ~[spigot56.jar:git-Spigot-72c2605-709783c]
at net.minecraft.server.v1_10_R1.MinecraftServer.run(MinecraftServer.java:567) [spigot56.jar:git-Spigot-72c2605-709783c]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_111]
Caused by: java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901) ~[?:1.8.0_111]
at java.util.ArrayList$Itr.next(ArrayList.java:851) ~[?:1.8.0_111]
at net.minecraft.server.v1_10_R1.World.a(World.java:2561) ~[spigot56.jar:git-Spigot-72c2605-709783c]
at net.minecraft.server.v1_10_R1.SpawnerCreature.a(SpawnerCreature.java:122) ~[spigot56.jar:git-Spigot-72c2605-709783c]
at net.minecraft.server.v1_10_R1.WorldServer.doTick(WorldServer.java:228) ~[spigot56.jar:git-Spigot-72c2605-709783c]
at net.minecraft.server.v1_10_R1.MinecraftServer.D(MinecraftServer.java:783) ~[spigot56.jar:git-Spigot-72c2605-709783c]
... 4 more
[21:24:48] [Server thread/ERROR]: Cause of unexpected exception was
java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901) ~[?:1.8.0_111]
at java.util.ArrayList$Itr.next(ArrayList.java:851) ~[?:1.8.0_111]
at net.minecraft.server.v1_10_R1.World.a(World.java:2561) ~[spigot56.jar:git-Spigot-72c2605-709783c]
at net.minecraft.server.v1_10_R1.SpawnerCreature.a(SpawnerCreature.java:122) ~[spigot56.jar:git-Spigot-72c2605-709783c]
at net.minecraft.server.v1_10_R1.WorldServer.doTick(WorldServer.java:228) ~[spigot56.jar:git-Spigot-72c2605-709783c]
at net.minecraft.server.v1_10_R1.MinecraftServer.D(MinecraftServer.java:783) ~[spigot56.jar:git-Spigot-72c2605-709783c]
at net.minecraft.server.v1_10_R1.DedicatedServer.D(DedicatedServer.java:400) ~[spigot56.jar:git-Spigot-72c2605-709783c]
at net.minecraft.server.v1_10_R1.MinecraftServer.C(MinecraftServer.java:668) ~[spigot56.jar:git-Spigot-72c2605-709783c]
at net.minecraft.server.v1_10_R1.MinecraftServer.run(MinecraftServer.java:567) [spigot56.jar:git-Spigot-72c2605-709783c]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_111]
[21:24:48] [Server thread/ERROR]: This crash report has been saved to: path
[21:24:48] [Server thread/INFO]: Stopping server
I would highly appreciate it if you could see if you can fix whatever seems to be causing the problem, and preferably post-haste. I am forced to unload the plugin for now, and no other anti-advertising plugin provides the functionality yours does.
domains checker thinks this is website : "3.stāvu", but it is in Latvian language 3.floor
EDIT: When there will be update for this plugins ?
Hi, i have your plugin, but how do i block the IP's i aven't changed any of the config so can you tell me a step by step list of how to block everything! Thanks -samuel
Awesome plugin. I got tired of people advertising on signs where I couldn't see it. Keep up the good work
@timothydavidhart
AntiAdvertiser blocks messages by cancelling the chat event. Can you post your plugins list? Your chat plugin may be ignoring whether the message is cancelled or not.
the plugin is working but it's not blocking the msg it just warns the player not blocking it
@NinjaAssassin864 did you not just hear what he said you dummy
@DeprecatedNether
Could you please add support for Cloudchat please?
@walula
Since CloudChat is a BungeeCord plugin, it receives the message before AntiAdvertiser, so there is no way for the latter to prevent the message from being sent to other servers as a Bukkit plugin. I am considering porting the plugin to BungeeCord as well, to support servers like yours that have a global chat.
Hello! I have a problem with the plugin, looks like a conflict with CloudChat (Spigot plugin)
I'm working on a server community with 10 servers connected each others with BungeeCord We use CloudChat a global chat plugin, we installed AntiAdversiter but when sombody type in chat one blacklisted word it shows to the admins and he get the warning but the message it's shown anyway in global.
Thanks in advance for the help
@DeprecatedNether
Thanks. ;)
@DeWilX
{tld} contains all TLDs that AntiAdvertiser knows about, in the format "tld1|tld2|tld3...". So when you're writing a custom regex, instead of
, you would use
.
How that {tld} works ? Example please.
@killerline10168
Bump?
I know this is not mean't for this and there's other plugins out there but you wouldn't be able to add anti-swearing to, right? We can write the words our self though, but please =D This plugin already blocks "some" words (domains though) but use that as a scratch for anti swearing =)
@DeprecatedNether
@DeprecatedNether works ty
@DeWilX
I've updated the custom filters page. There was a mistake in a some of the examples (such as the one you gave). Could you try
instead?
@DeprecatedNether And yes
this isn't working.
only works when it's just
It won't take first part from this
but this
isn't good , because it block some lines like this "my name is netoxp" <- Example
@DeWilX
I'll be sure to add it in the next version :)
reload config command would be great. ;)