DynamicBan

Announcement: Version 1.3.1 is not compatible with current spigot versions!
Announcement: Version 1.3.1 is not compatible with current spigot versions!
A workaround is being worked on.
- Posted on (10.10.2014) by DJ Addi
- Kick, ban, IP-ban or range-ban players
- Temporarily ban or IP-ban players
- Automatically punish players that are blacklisted by DNSBL services
- Warn players and execute commands after a certain amount of warnings
- Get notified when two players with the same IP adress join or compare IPs manually per command
- Lock IPs to a single name
- Recieve a list of all players and their IPs from the console
- Make players immune to all commands or whitelist them to protect them from bans
- Check a player's status including warnings, kicks, bans, temporary bans and more
- Send players information about their own warnings whenever they login
- Purge a player's data with a simple command
- Fully costumizable messages for everything including broadcasts
- Only explicit autocomplete for safer administration
- Update notifications

| Command | Arguments | Description |
|---|---|---|
| dp | [Name] | Displays details for the given player. |
| dk | [Name] [Reason] | Kicks the specified player. |
| db | [Name] [Reason] | Bans a player's name. |
| dbip | [Name] [Reason] | Bans a player's IP. |
| drb | [Name] [level:1/level:2/level:3] [Reason] | Bans a player's IP range. |
| dub | [Name] | Unbans a player's name.. |
| dubip | [Name] | Unbans a player's IP. |
| durb | [Name] | Unbans a player's IP range. |
| dst | [Name] (1/2) | View detailed information about warns and bans. |
| dtb | [Name] [Time eg. 1h:2m] [Reason] | Temporarily bans a player's name. |
| dtbip | [Name] [Time eg. 1h:2m] [Reason] | Temporarily bans a player's IP. |
| dim | [Add/Remove][Name] | Adds or removes a player's immunity to DynamicBan commands. |
| dwl | [Add/Remove][Name] | Adds or removes a player from the whitelist which protects the player from bans. |
| dw | [Name] [Reason] | Warns the specified player. |
| dpg | [Name] [data,warns,kicks] | Resets a player's data. |
| drl | Reload the DynamicBan data. | |
| dlist | View a list of online player's IPs. (Console only) | |
| dc | [Name] [SecondName] | Compare the IPs of the specified players. |
| dl | [IP] [Name] | Locks the specified IP to a name. |
| dul | [IP] | Unlocks the specified IP. |
| dm | [Name] [Time eg. 1h:2m] [Reason] | Mute the specified player. |
| dum | [Name] | Unmute the specified player. |

| Permission | Granted |
|---|---|
| operator or dynamicban.* | All commands |
| dynamicban.ban.player | db |
| dynamicban.ban.ip | dbip |
| dynamicban.ban.range | drb |
| dynamicban.immune.add | dim add |
| dynamicban.immune.remove | dim remove |
| dynamicban.whitelist.add | dwl add |
| dynamicban.whitelist.remove | dwl remove |
| dynamicban.purge | dpg |
| dynamicban.kick | dk |
| dynamicban.player.details | dp |
| dynamicban.player.standing | dst |
| dynamicban.reload | drl |
| dynamicban.tempban.player | dtb |
| dynamicban.tempban.ip | dtbip |
| dynamicban.unban.player | dub |
| dynamicban.unban.ip | dubip |
| dynamicban.unban.range | durb |
| dynamicban.warn | dw |
| dynamicban.mute | dm |
| dynamicban.unmute | dum |
| dynamicban.lockip | dl |
| dynamicban.unlockip | dul |
| dynamicban.check | Same-IP notifications |
| dynamicban.compare | dc |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 | # DynamicBan 1.3.1a - Comprehensive Administration System. config: check_for_updates: true # Do you want to check for updates? plugin_tag: '&0[&3DynamicBan&0]&f: ' # How do you want the plugin messages to be tagged? ('' to deactivate) broadcast_on_kick: true # Do you want to broadcast kicks? broadcast_on_ban: true # Do you want to broadcast bans? broadcast_on_ipban: true # Do you want to broadcast ipbans? broadcast_on_tempban: true # Do you want to broadcast tempbans? broadcast_on_iptempban: true # Do you want to broadcast iptempbans? broadcast_on_same_ip: true # Do you want to broadcast when two players have the same ip? broadcast_on_mute: true # Do you want to broadcast mutes? broadcast_on_unmute: false # Do you want to broadcast unmutes? broadcast_on_warn: true # Do you want to broadcast warnings? broadcast_on_rangeban: true # Do you want to broadcast rangebans? broadcast_on_unban: false # Do you want to broadcast unbans? warns_timeout: 72 # How many hours do you want to keep warnings? (0 to keep warnings permanently) warns_on_login: true # Should players be informed about their warnings after they logged in? warns_on_login_delay: 0 # By how many seconds should the warning notification be delayed? (0 to deactivate) connections_per_ip: 5 # How many connections do you want to allow per ip? (0 to deactivate) messages_per_ip: 3 # For how many connections from the same ip should the join and leave message be shown? (0 to deactivate) op_immune_bypass: false # Allows OPs to bypass the immunity of players. mute: blocked_commands: # When a player is muted, what commands should be disallowed? - msg - tell - r - er dnsbl_services: - zen.spamhaus.org - dnsbl.sorbs.net # Which DNSBL services do you want to be checked? dnsbl_result: none # What should happen when a blacklisted ip attempts to join? (none, kick, ban, ipban, notify) tempban_limits: dynamicban/tempban/limit/minute: 60 dynamicban/tempban/limit/hour: 3600 dynamicban/tempban/limit/day: 86400 # Do you want to define permission nodes to limit the maximum tempban length? allow_offline_players: true # Do you want to allow Bukkit to handle offline UUIDs if they don't have a normal one? enable_bukkit_bans: true # Do you want to enable the Bukkit bans as backup? convert_to_uuid: true # Do not change this! messages: # Variables are {SENDER}, {REASON} and {TIME} for temporary actions kick_message: "You have been kicked by {SENDER}. Reason: {REASON}" # The kick message. mute_message: "&cYou have been muted by {SENDER}. Time left: {TIME}" # The mute message. unmute_message: "&bYou have been unmuted by {SENDER}." # The unmute message. ban_message: "You have been banned by {SENDER}. Reason: {REASON}" # The ban message. tempban_message: "You have been temporarily banned by {SENDER}. Time left: {TIME}" # The tempban message. ip_tempban_message: "You have been temporarily ip-banned by {SENDER}. Time left: {TIME}" # The tempipban message. ip_ban_message: "Your IP has been banned by {SENDER}. Reason: {REASON}" # The ipban message. warn_kick_message: "You were kicked after multiple warnings." # The warnkick message. locked_ip_message: "That IP has been locked to another player." # The iplock message. ip_connections_message: "Too many players connected from your IP." # The iplimit message. rangeban_message: "Your IP-range has been banned by {SENDER}. Reason: {REASON}" # The rangeban message. muted_message: "&cYou cannot talk, you have been muted. Time left: {TIME}" # The message to send to the player when he/she is muted and attempts to send a message. muted_command_blocked: "&cYou cannot perform that command, you have been muted! Time left: {TIME}" # The message to send to the player when he/she is muted and attempts a blocked command. broadcast_messages: # Variables are {PLAYER}, {SENDER}, {REASON} and {TIME} for temporary actions kick_message: "&b{PLAYER} has been kicked. Reason: {REASON}" # The broadcast message when a player is kicked. mute_message: "&b{PLAYER} has been muted. Time: {TIME}" # The broadcast message when a player is muted. unmute_message: "&b{PLAYER}'s mute has been removed." # The broadcast message when a player is muted. ban_message: "&b{PLAYER} has been banned. Reason: {REASON}" # The broadcast message when a player is banned. tempban_message: "&b{PLAYER} has been temporarily banned. Time: {TIME}" # The broadcast message when a player is tempbanned. ip_tempban_message: "&b{PLAYER} has been temporarily ip-banned. Time: {TIME}" # The broadcast message when a player is iptempbanned. ip_ban_message: "&b{PLAYER} has been ip-banned. Reason: {REASON}" # The broadcast message when a player is ipbanned. warn_message: "&b{PLAYER} has recieved a warning. Reason: {REASON}." # The broadcast message when a player is warned. rangeban_message: "&b{PLAYER} has been range-banned. Reason: {REASON}" # The broadcast message when a player is rangebanned. unban_message: "&b{PLAYER}'s ban has been removed." # The broadcast message when a player is unbanned. other_messages: immune_message: "&cThat player is immune to your command!" # The message the commandsender will recieve if a player is immune. warned_message: "&c{SENDER} warned you. Reason: {REASON}." # The message to send to the player when he/she is warned. same_ip_message: "&b{PLAYER} logged in on the same IP ({IP}) as {OLDERPLAYER}." # The message to send to players with permission/op when the are two or more players with the same ip. dnsbl_ip_message: "&b{PLAYER}'s ip is blacklisted." warnings_message: "&cYou have been warned for the following reason(s):&b{WARNS}&cYou have {AMOUNT} warning(s)." # The message to send to players if warns_on_login is true. Each warning will be sent in a new line. default_reason: "&cUnspecified" # The default reason for everything. dnsbl_reason: "&cYour ip is blacklisted." # The default reason for DNSBL bans. |

- MySQL
Information on further development
Hey guys, DJ Addi here. With version 1.3.0 the plugin reached a point where I'd say it is more or less finished. If there are bugs or important features that require an update I will release a new version as fast as possible (without waiting for stuff to pile up). However, it is unlikely that new big features will be added (unless I really like them so keep the suggestions coming).
Stay tuned for updates on the release of DynamicBan 2.0.
Currently working on:
- Cleaning up database code, adding missing comments to other classes
- Moving ban-types to separate tables to allow future scalability (We cannot easily append missing fields, but we can add on missing tables if a new feature is added).
-
View User Profile
-
Send Message
Posted Jul 25, 2013@spetznack
Changes
That should explain your second issue, I'll look into the first one. Could you post the error message?
-
View User Profile
-
Send Message
Posted Jul 24, 2013I have seen 2 minor errors after some minor testing:
First one occured when typing /dst [playername] http://i.imgur.com/HdUjAUB.jpg
Page two of the /dst command looks fine.
Second error happened when I warned someone the second time. As expected, he got get kicked for it, but the message we saw didn't include the reason. http://i.imgur.com/vpo68V8.jpg
I'll report it if I find more, should I make a ticket for this kind of stuff?
-
View User Profile
-
Send Message
Posted Jul 24, 2013@spetznack
I haven't tested it but since the only potentially plugin-breaking change is the entity health (which isn't used by DynamicBan) it should work fine.
-
View User Profile
-
Send Message
Posted Jul 23, 2013Has anyone tried running DynamicBan 1.3.0 for CB 1.5.2-R1.0 on any craftbukkit 1.6.2-R0.1 build? I will try it as soon as I can, I'm just asking if anyone got it working :)
-
View User Profile
-
Send Message
Posted Jun 29, 2013@djaddi
Alright, I understand that. I'll check back frequently - thanks for the notice.
-
View User Profile
-
Send Message
Posted Jun 29, 2013@AmicusMCS
I'll see what I can do. I am not the original author of this plugin, therefore it might take a while.
-
View User Profile
-
Send Message
Posted Jun 28, 2013Is this plugin open-source? I'd prefer to use a plugin that is if possible. There is a very outdated version of DynamicBan on github, can it be updated?
-
View User Profile
-
Send Message
Posted May 30, 2013thanks, can't wait to see this!
-
View User Profile
-
Send Message
Posted May 30, 2013@Ordrox
A rangeban is doing exactely what a rangeban is supposed to do - it bans an ip-range. If the player you have to deal with is using the same ip-range it will work, if not it won't. Also, I will propably implement DNSBL lookups in the next version.
-
View User Profile
-
Send Message
Posted May 30, 2013Hi! I'm helping a friend moderating his server, i would like to know if the range-ban is really effective? Did you tryed it? I mean, does it really work against those annoying players "haha look i'm stronger than you i have a dynamic IP"? i supose they have to use proxy after that.
-
View User Profile
-
Send Message
Posted May 24, 2013@Unknown_Mage
Just a quick heads up on this issue: I have fixed it and will release 1.2.9a soon(tm). Until then, just set warns_on_login_delay to 0 as a workaround.
-
View User Profile
-
Send Message
Posted May 9, 2013I am seeing same issue on CraftBukkit 1.5.2 R0.1 with this build of DynamicBan as kitsune4295 is reporting. Same error whenever someone joins. I don't think it is affecting ban plugin, but it is an annoying error to see. Probably having to do with checking IP with other players.
I hope 1.3 comes out soon.
-
View User Profile
-
Send Message
Posted May 5, 2013having an issue with the current version of the plugin with bukkit 1.5.2:
20:59:38 [INFO] Mastachief34[/XX.XX.XX.XX:59312] logged in with entity id 1930 5 at ([survival_only] 176.89858915810788, 90.23981936600332, -671.8367204428785)
20:59:39 [SEVERE] Could not pass event PlayerJoinEvent to DynamicBan v1.2.9 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:427) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav a:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j ava:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j ava:462) at net.minecraft.server.v1_5_R3.PlayerList.c(PlayerList.java:204) at net.minecraft.server.v1_5_R3.PlayerList.a(PlayerList.java:100) at net.minecraft.server.v1_5_R3.PendingConnection.d(PendingConnection.ja va:129) at net.minecraft.server.v1_5_R3.PendingConnection.c(PendingConnection.ja va:44) at net.minecraft.server.v1_5_R3.DedicatedServerConnectionThread.a(Dedica tedServerConnectionThread.java:41) at net.minecraft.server.v1_5_R3.DedicatedServerConnection.b(SourceFile:2 9) at net.minecraft.server.v1_5_R3.MinecraftServer.r(MinecraftServer.java:5 81) at net.minecraft.server.v1_5_R3.DedicatedServer.r(DedicatedServer.java:2 26) at net.minecraft.server.v1_5_R3.MinecraftServer.q(MinecraftServer.java:4 77) at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java :410) at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:5 73) Caused by: org.bukkit.plugin.IllegalPluginAccessException: Plugin attempted to r egister task while disabled at org.bukkit.craftbukkit.v1_5_R3.scheduler.CraftScheduler.validate(Craf tScheduler.java:394) at org.bukkit.craftbukkit.v1_5_R3.scheduler.CraftScheduler.runTaskTimer( CraftScheduler.java:120) at org.bukkit.craftbukkit.v1_5_R3.scheduler.CraftScheduler.scheduleSyncR epeatingTask(CraftScheduler.java:116) at org.bukkit.craftbukkit.v1_5_R3.scheduler.CraftScheduler.scheduleSyncD elayedTask(CraftScheduler.java:100) at co.cc.dynamicdev.dynamicbanplus.DynamicBan.warnMessage(DynamicBan.jav a:291) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:425) ... 14 more
it does that everything someone joins the server.
-
View User Profile
-
Send Message
Posted Apr 29, 2013oh .. yes i think i did.
nvm
-
View User Profile
-
Send Message
Posted Apr 29, 2013@Sheeperia
Fixed next version.
@CatsyLady
You propably downloaded the version that I posted here in the comments a while ago. Don't worry, it's stable.
-
View User Profile
-
Send Message
Posted Apr 29, 2013why i have v1.2.9a ?
is that differ from 1.2.9 ?
-
View User Profile
-
Send Message
Posted Apr 28, 2013Another bug: If theres more than one staff member online, only one of them gets the same-IP notification. It seems to be random who gets it, even though all of them are in the same permission group with "dynamicban.check"
-
View User Profile
-
Send Message
Posted Apr 25, 2013This pops up in the logs when some players join:
http://pastebin.com/C5gu5Dj5
-
View User Profile
-
Send Message
Posted Apr 22, 2013@_iMinecrafter_
You can also create your own aliases using the Bukkit.yml - more information here. Be careful that you don't override other important commands though.
-
View User Profile
-
Send Message
Posted Apr 21, 2013Everything except IP-Ban automatically has aliases (ban, kick, etc). I allow IP-Ban to not have an alias to allow manual banning.