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 23, 2012@xDrapor
So.... any estimation about the MySQL support?
Also.. hope i'm not sounding demanding or something, just trying to help you to make this plugin even better.. :P About 90% of the plugins that i have seen, that require a time to be given in one or more of the commands, do it a little bit different. Instead of '23 hours' or '10 days' you can just type '23h' or '10d'. I'm not saying you have to change it, but it might be more user friendly to allow times to be entered like that too.
-
View User Profile
-
Send Message
Posted May 22, 2012Development of this plugin will be abit, ABIT slower, as I'm working on a plugin that is unique, and that I'm sure the community will appreciate. This plugin will receive updates probably as usual, and Rangebans is being taken care of by my good accomplice, KoolSource!
xDrapor
-
View User Profile
-
Send Message
Posted May 22, 2012@stoutrouge
I didn't override the default ban-ip command. So you can use that!
xDrapor
-
View User Profile
-
Send Message
Posted May 22, 2012Ahh is there a way I can ban ips without the players name.
-
View User Profile
-
Send Message
Posted May 22, 2012@snowy007
Convert the days into hours, I'm working on a fix for that, sorry!
xDrapor
-
View User Profile
-
Send Message
Posted May 22, 2012@djaddi
Using commandbook to get command aliases. Also made a macro that executes both name and ipban commands. So i don't really need that option any more myself. :P
I must have missed the 'Customizable warn results' in the to-do list, i see it now though. xD - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Now.. i installed the plugin and everything seems to work just fine. However... to test if everything works correctly i tried to temp ban a test account for 3 days. Now what do i get.. an error saying 'Please enter a number above 10!' What the hell man? I don't want to jail him for 10 days. I want to jail him for 3 days. Am i supposed to calculate how many hours there are in 3 days first? Not that bad for 3.. but what if i want to jail him 9 days? I'd have to open the calculator before i can temp ban someone??
-
View User Profile
-
Send Message
Posted May 22, 2012@snowy007
The point with the auto-kick is that some players just don't read red messages. The kick should wake them up. And yes, the "costumizable warn results" are already on the to-do list.
Banning both name and IP in one command would be... well, I guess it would be ok, but usually I wouldn't need it. Either a player really wants to play on your server and already reached something - name ban him. If he logs in with another name all his progress is lost. If he is just on your server to do shit, ban his ip because he can change his name faster than his ip.
-
View User Profile
-
Send Message
Posted May 22, 2012ok thanks. it seems to workd now.
but i still get the ban message from bukkit when i tempban a player even i set a # in front of the ban commands in plugin.yml (banip, unban, ban etc.)
-
View User Profile
-
Send Message
Posted May 22, 2012This plugin is the best banning plugin i have seen so far. I'm using commandbook banning right now but i dislike how the IP banning works. I have to search for a players IP first with /whois (which only works if he is online, else i have to look in my xauth database for the IP) and then i have to type in the full IP. This plugin is already 100x better just because i only have to type a players name to ban his IP.
2 suggestions though. How about Name + IP ban in a single command? Usually i want to ban both of them to prevent the player from both logging in on on another computer or joining with another name. (My server is in offline mode)
Now.. about the auto-kick when reaching warning limit. It sounds a bit... useless.. I mean, i can kick a player but they will join again within 5 seconds. Wouldn't it be better to make it an auto-ban or auto-tempban when reaching the warning limit? Maybe make it an option for the user to choose what should happen on reaching warning limit?
Also, i can't wait for the MySQL support. It would be great to put a 'banned players' list on my website.
-
View User Profile
-
Send Message
Posted May 21, 2012@greaperc4
Are you using the latest version? I'll have a look at my code, the previous version had a huge bug in warns. EDIT: Works fine in the latest version.
Fixed the default messages in the ban messages.
-
View User Profile
-
Send Message
Posted May 21, 2012Hello great plugin but /warn isnt working and you need to make warns ingame not if u warn them they get kicked :(
-
View User Profile
-
Send Message
Posted May 21, 2012@Hans6666
Looking at the events I have, I test right beside essentials, I had no issues, let me check. -xDrapor
-
View User Profile
-
Send Message
Posted May 21, 2012@Hans6666
Are you using 1.2.4d? In 1.2.4c it is indeed bugged.
You are obviously having quite a few problems because Essentials overrides a lot of stuff. You should try deactivating all ban-related Essentials commands and use the default DynamicBan.jar (you can add alias commands in the bukkit.yml). Then explain what you are doing and what happens (and what should happen instead).
-
View User Profile
-
Send Message
Posted May 21, 2012temporary ban of ip doesnt work, it doesnt unban?
edit2: when i join the server it shows myplayername has got the same ip as 1337628734 (whats this?)
edit3: yes i use the new one, and another little bug (not important) when i dont set a reason, it uses default, for expample i set "keiner" as default, when a player gets banned it shows as reason "keiner", but when he try to join another time it shows reason: None...this is not important...
edit4: ahh ok now i downloaded the new version again and didnt edit it (i added command like banip and unbanip etc) and now it seems to work
edit5: ok after testing it again, temp ip ban does work for 11 sec but when i tempban an ip for 20 sec it doesnt unban the ip, im getting the ban reason from essentials, so it doesnt unban from bukkit
edit6: now i used my edited jar from you with added commands, but now i dont get the error with same ip? dont know....
edit7: and when i tempban an ip, it doesnt show the time left sec, it does show the one from essentials
edit8: now i tempbanned an ip for x seconds, it unbanned it, then i did it another time, then the ip dont get unbanned..strange
-
View User Profile
-
Send Message
Posted May 20, 2012@aed8494
Always open for suggestions, and sorry, no , I didn't get a PM...
-
View User Profile
-
Send Message
Posted May 20, 2012@xDrapor Are you open for suggestions for your plugin? Also did you get my pm?
-
View User Profile
-
Send Message
Posted May 20, 2012@djaddi
Fixed 'em all. Also, the permission is dynamicban.immune.add and dynamicban.immune.remove... Sorry about that.
-
View User Profile
-
Send Message
Posted May 20, 2012@djaddi
Bleh, I'll begin working on a huge bugfix. And Yea, I fixed the warn kick, sorry about that... Also, the pastebin that you posted is due to an empty name, or a name not supported by Bukkit/Minecraft. EDIT: IP Bans work perfect for me, strange..
-
View User Profile
-
Send Message
Posted May 20, 2012More bugs!
The last update broke quite some stuff...Filed as tickets...................... read your pms.
Have fun,
Addi
-
View User Profile
-
Send Message
Posted May 19, 2012@djaddi
Yes, broadcast_on_same_ip is the same-ip notification :P. And the IP-ban does show the messages, all of them do, its just bad detection, ill fix it. And i just named it "broadcast" because it broadcasts to all admins, but I like to call it a notification.