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 May 30, 2012@snowy007
No, he is not talking about locking the ip to a player, he is talking about locking the player to an ip. That is something that was mentioned on the last page of comments here. I suggested it because it would have some good uses with ip ranges.
@deleted_7554077
Doing what I said above would have the same effect as the so called "reverse enforce single session". This is only necessary for offline-servers (because the name can only be faked if somebody knows the account password for online servers) and should therefore be handled by your authentication plugin (AuthMe and xAuth both have this feature). Have fun,
Addi
-
View User Profile
-
Send Message
Posted May 30, 2012@deleted_7554077
The plugin does have a command for that "/dl <IP> <Name>" But no, it doesn't do that automatically for each player that joins. Would be a nice option, though i'm not sure i would use it. I have a lot of players that are real-life friends and are often located at each others house.
-
View User Profile
-
Send Message
Posted May 29, 2012Well I hope you can add some improvements for version 2 for this situation then.
Also I was hoping that this plugin would have some IP locking functions?
Like when a player first joins with an IP their initial IP will be recorded and saved and also locked. So when another fake player tries to join under his name with another IP they will be kicked/banned or something else.
Is something similar being added to version 2?
Thanks
-
View User Profile
-
Send Message
Posted May 29, 2012@deleted_7554077
That's nothing major, just an array out of index, strange, but I don't have plans to do updates for 1.x.x. I hope you can understand..
xDrapor
-
View User Profile
-
Send Message
Posted May 29, 2012Error Report:
Using "/dc Name" throws null error. Command example is also misleading.
Also if using "/dc Name Name" when one players IP has been recorded and the second one isn't then the plugin says "No data has been found for both players"
Please try to fix.
Enable ticket section? Link/site is down.
Error:
2012-05-29 13:15:08 [SEVERE] null
org.bukkit.command.CommandException: Unhandled exception executing command 'dc' in plugin DynamicBan v1.2.4d
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:42)
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:166)
at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:479)
at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:821)
at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:781)
at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:764)
at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java:103)
at net.minecraft.server.Packet3Chat.handle(Packet3Chat.java:34)
at net.minecraft.server.NetworkManager.b(NetworkManager.java:229)
at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113)
at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java:169)
at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78)
at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:567)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:459)
at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
at co.cc.dynamicdev.dynamicbanplus.commands.CompareIP.onCommand(CompareIP.java:45)
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:40)
... 14 more
Also can you make your DynamicBan tag configurable?
Can you add a feature to kick all fake players when IP is locked?
Can you add IP range support for the locking feature?
Different permissions for range locks? Like permission to range lock with the last number 123.123.123.X and another permission to range lock 123.123.X.X
Can you add IP usage history? Like /dhistory and it will list all IPs a player has been joined on with the original one.
Big Thanks!
-
View User Profile
-
Send Message
Posted May 28, 2012@theTNTdestroyer
I contacted a server host, but I'll let you know , Thank you!
@YiveMe
Easy, will add it. Similar to mute, but for block placing, correct?
-
View User Profile
-
Send Message
Posted May 28, 2012new Todo?
/dbuild /dbu /dynbu Blocks player from building and each time they place a block it says "You are not allowed to build due to {Reason}"
-
View User Profile
-
Send Message
Posted May 28, 2012@xDrapor
Hi Xdrapor you may remeber me from EXPcraft. I would be happy to make my server as a testing server, i have MySql (i asked you how to set it up but i figured it out mah self lol) and 3gb ram. I try to keep the server 24/7 and hoping to get 6 gigs of ram for the server soon :) i hope you respond :) My name is also TNT on dynamic craft :P ( it would be nice to test)
-
View User Profile
-
Send Message
Posted May 28, 2012@xDrapor
Missed that!
-
View User Profile
-
Send Message
Posted May 28, 2012@Techykid3
Agreed, however, I might just wait until 2.0 to release. I'm not happy with the efficiency and the limiting factors of my current code. Also, the plugin automatically adds "ban" "tempban" and other commands, so I don't see an issue there..
Thanks
xDrapor
-
View User Profile
-
Send Message
Posted May 28, 2012@snowy007
Thanks for the positive feedback ;)!
We are going to make MySQL optional, but it will not be in the next release as far as me and xDrapor have decided. MySQL is going to be integrated in the recoded version. As for the commands, we're going to create a way to turn on/off the simple commands. We're working on reconstructing the way we do some things with the plugin, which will greatly improve simplicity and efficiency. Once again, thanks for the feedback!
-
View User Profile
-
Send Message
Posted May 28, 2012@xDrapor
Of course your getting positive response. This plugin has almost everything a banning plugin would need, and is simple to use at the same time. If the range-ban and MySQL support is working it is probably the best banning plugin out here. Well... at least i haven't seen much better banning plugins.. My advice however would be to make MySQL optional. Its great to have but might scare away the server owners that don't know what MySQL is. So giving the player the option to use MySQL or not would make both advanced and beginners happy.
And something about the commands. When i first opened this plugin page and saw the command list, the first thing i thought was... 'wow, seems complicated'. The commands are very unusual for a banning plugin and difficult to remember. I know they make perfect sense when you look closer but still people might find it difficult to remember them. Now, also allowing /ban /banip /unban /unbanip /temban and that sort of commands would make it much easier for people to remember. And if this is already possible... i would recommend putting those here in the plugin description.
Just trying to give some advice. No offence taken if you ignore it, you just do this the way you want it. xD
-
View User Profile
-
Send Message
Posted May 27, 2012@djaddi
The reason behind player - to - ip locks were this:
Also, I'm probably going to make it orthodox, like lock an ip, to a player. Thanks for reminding me about this.. I'll have to recode. I'm thinking of recoding my entire plugin, after my exams. It will be much better. Remember before I did this recode (If you saw the plugin), it was basic, had almost nothing. After the recode, I had more flexibility to add stuff, and ever since I've learnt alot more. This new recode will mean alot more cleaner, functional, and efficient code. I just need the time for it, I'm very much committed to this plugin, seeing the positive response it got.
-
View User Profile
-
Send Message
Posted May 27, 2012@xDrapor
Oh yeah, concerning the ip locks:
Until now, reverse ip locks (locking a player to an ip) didn't make much sense. But as soon as you are able to realize ip range locks it would be a quite nice feature to lock a player to one or multiple ip ranges.
Also, the attempt to join with a locked ip seems to confuse some plugins (e.g. HeroChat)... not sure why. It seems like they notice the attempt to join and register the player, but as it fails they don't unregister him. Propably an event priority issue?
Also, you could add a configurable timeout for warnings (nothing important, maybe take a look at it when implementing the warn results).
Have fun,
Addi
-
View User Profile
-
Send Message
Posted May 27, 2012@djaddi
The dynamicban.* node works fine for me.. And yep, I fixed alot in the dynstanding lately.. Gotta separate it into pages!
@Techykid3
I'll be working on this in a similar way to my range-ban system, which follows a format like this:
/drb xdrapor level:1 would rangeban: 127.0.0.* /drb xdrapor level:2 would rangeban: 127.0.*.* /drb xdrapor level:3 127.*.*.* Hence, I can use that for the lock-ip (Levels)
-
View User Profile
-
Send Message
Posted May 27, 2012@deleted_7554077
That is an issue we will be working to fix soon. This may be one of the harder problems for us to resolve because we have no way of detecting if it was a legitimate IP change (e.g. a dynamic IP changing on it's regular monthly basis (which could vary))
-
View User Profile
-
Send Message
Posted May 27, 2012@Hans6666
Only bad thing about that is if you wanted to ban players from joining with a certain name, but allow them to join with any other name other than the ban name.
-
View User Profile
-
Send Message
Posted May 27, 2012How are static IP's handled when locking a certain IP for a player?
Will he on one day just won't be able to connect?
Like the IP is:
123.123.X.X where he 2 last numbers change constantly. Will that affect locking an IP to a account?
Thanks. Quite good plugin. Gonna try it out soon.
-
View User Profile
-
Send Message
Posted May 27, 2012/ban does only ban the playername
/banip does only ban the ip of a player
a combination would be also great
-
View User Profile
-
Send Message
Posted May 27, 2012does the plugin auto ban ip when i /ban? or do i needa /ipban or /banip to do so