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 9, 2012@daego
I don't believe in taking other people's work without even understanding what I am doing. Sorry, but I'm working on an update.
-
View User Profile
-
Send Message
Posted May 9, 2012plz add range ban !!! plz ! u can grab some code here from an abdoned plugin that has range ban
EasyBan
-
View User Profile
-
Send Message
Posted May 9, 2012@AS1LV3RN1NJA
Hm, I might help out with the project, I'd love to actually.
EDIT: I was looking at the update to GeoIPTools, he did not guarantee that he could do it.. I'm hoping I will be allowed to join the project. If not, I'll channel my time significantly to:
I expect that this will take a while. I will release one last bugfix before I begin these two, so report bugs as much as you can! Even the smallest issues.
-
View User Profile
-
Send Message
Posted May 9, 2012Just a note to EasyBan users, EasyBan has been updated (or will be very soon).
-
View User Profile
-
Send Message
Posted May 8, 2012@djaddi
Hm, the warn kick thing you mentioned made me laugh aswel, I made it dead on accurate, but I guess my choice of words wasn't the best :P
Also, the mute information was gonna be added, but I needed to get an update out, and I've just been busy. I usually get an update out every weekend when I'm free
Thanks,
-xDrapor
-
View User Profile
-
Send Message
Posted May 8, 2012@xDrapor
This will be quite a lot of unimportant information, skip it if you don't have enough time.
First thing is about my last post. I've expressed myself kind of unclear - I did not mean real "bots" - they use proxies and they are usually banned by NCP - what I meant are kids that think it would be cool to have their name 50 times online (or similar). This might sound strange, but there are a lot of those. Anyway, the suggested limit has a very low priority, don't spend too much time on it.
Second point is that (I laughed about this) the amount of warnings before kick is still unaccurate. Before my first post it was one too much, now it is one too less because the config says "warns_before_kick" - currently it should say "warns_until_kick".
And finally it would be nice to have a mute-note on the player's standing (maybe with time left, but that's optional).
Have fun,
Addi
-
View User Profile
-
Send Message
Posted May 7, 2012@Bluemarien
Im almost certain I fixed this in the latest build... Can you make sure you updated? If not, Ill have a good look at my code. Try not to use low values. I'd recommend a value of "10" for each unit.
-
View User Profile
-
Send Message
Posted May 7, 2012@xDrapor
I'm having a problem where when I temporarily ban someone, they get a negative time, and therefore, may join the server again. This is acting like a kick, and isn't very helpful for my server. Is there a solution to the problem? Thanks!
-
View User Profile
-
Send Message
Posted May 7, 2012@djaddi
Thanks so much! I will fix what you suggest, seems enough for a dev build. But the thing about bots is, they use proxies. IP limiters can be done, but its just of no use. Nocheatplus uses a timeout, which is much more effective, in my opinion. Once again, I'll try my best to incorporate what you asked for :)
@stoutrouge
If you really need it, its possible, but its some work. Ill try to make it optional.
-
View User Profile
-
Send Message
Posted May 7, 20121.2.4 works good so far. But your new features just gave me another idea: How about an option to limit the number of players connecting from a single IP and lock the IP if it is exceeded? This would be quite effective against spambots (and it is propably something that I will also suggest for NoCheatPlus). If the players are on a LAN or something it would then still be possible to manually unlock the IP again so this should not be a problem.
As this is a more significant change than the ones I posted before, please tell me what you think about it.
Also, entering a string instead of an integer for the mute time (happens because my moderators aren't used to the new mute system) throws this error. Nothing important, just spamming the console a bit.
By the way, I never needed temp ban reasons so far (because you would actually never temp ban someone without giving him at least a warning first). Have fun,
Addi
-
View User Profile
-
Send Message
Posted May 7, 2012Temporary ban reason? Don't know if its something that is already requested. Let know if it is.
Thanks.
-
View User Profile
-
Send Message
Posted May 6, 2012@MovieMaker2MC
Already done, unlimited reason, and customisable messages. Please update!
-
View User Profile
-
Send Message
Posted May 6, 2012Could you make it so we can make longer ban messages?
-
View User Profile
-
Send Message
Posted May 6, 2012@djaddi
Darn, I knew about the update error, but i forgot about it. I want more bugs to be reported and I'll get a beta build out asap!
And sure, Ill make the default message configurable! Thanks alot for the suggestions once again!
-
View User Profile
-
Send Message
Posted May 6, 2012More suggestions? No problem. People keep asking me why somebody was kicked/banned/muted for "nothing". Maybe add a config node for changing the default reason.
Also, having auto-update set to false throws this error (which does not appear when auto-update is true). Have fun,
Addi
-
View User Profile
-
Send Message
Posted May 6, 2012@silencshadow
I'm working on rangebans for the next updates, which is basically what you are requesting :D
-
View User Profile
-
Send Message
Posted May 6, 2012@Jdon278
Its already done :)
-
View User Profile
-
Send Message
Posted May 6, 2012This may sound stupid but it would be better if you had longer command as dub and dubip and all that is a bit confusing to remember, just put an alias in your plugin.yml for each of them like unban,unbanip,tempban etc
-
View User Profile
-
Send Message
Posted May 5, 2012Heya, can u ban with ths plugins dynamic ips? Like the IP 123.123.*.* for the last ALL 255 ip blocks? If someone refresh there ips to prevent rejoin ...
Regards
-
View User Profile
-
Send Message
Posted May 5, 2012@djaddi
Hey! I noticed that error, and I already fixed it. What I did is moved my IP-ban listener to a playerloginevent. It retrieves the player's IP from they're player file, and uses that to check against the bans.
Thanks, and if you have suggestions, please let me know. I'm still working on the update, more specifically, the muting system.
EDIT: I think your idea of the optional bukkit bans is brilliant, It may override my ban messages, but I'll look into it in 1.2.5 if my system is reported as buggy. Thanks once again for your feedback :D
- xDrapor