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 Feb 3, 2013@djaddi
That's ok, hopefully you can squash that bug! And thanks for the super fast reply! :)
-
View User Profile
-
Send Message
Posted Feb 3, 2013@add5tar
There definitely is a problem somewhere. I'm looking into it but I don't know how long I take to find and fix it.
€: Found and fixed the issue. Expect a small update soon.
-
View User Profile
-
Send Message
Posted Feb 3, 2013@djaddi
Hello djaddi, regarding the warnings in /dst, the warnings already had seconds in my server and the file format is exactly the same. After some testing, I figured out that only warnings with a date of (or after) 1 Feb 2013 are show up in /dst.
Is this just a bug or was there a reason it had to happen?
It's really important that I keep all the warning data, so I can bulk change all the files to set the date to 1 Feb, but if it's a bug and you will be fixing it shortly, I would prefer to wait.
Thanks! :)
-
View User Profile
-
Send Message
Posted Feb 3, 2013@XeonG8
That variable already exists as {SENDER}.
"like /dub" and not a single error log posted. To everyone: This is how you should not report bugs. Thanks for the negative example. Anyway, I fixed /dub for the next version.
@XeonG8
As mentioned before, changing the way data storage works now is too much effort to be worth it.
@Archmohaa
It was suggested multiple times, I didn't have the time to add it yet.
@Sheeperia
/dh was removed because it is unnecessary, use /help dynamicban. The warnings are slightly buggy, I already fixed that and will release the update soon.
-
View User Profile
-
Send Message
Posted Feb 3, 2013Hmm.. After updating to the newest version, and the warnings doesn't show up on /dst [name] 2 I checked the player.dat files, and the warns are still there. What's wrong?
EDIT: i also noticed that /dh was removed. Why?
-
View User Profile
-
Send Message
Posted Feb 3, 2013Just a small suggestion if it hasnt already been said, would be really awesome if you could add a "reason" to temp banning someone
-
View User Profile
-
Send Message
Posted Feb 3, 2013Also it would be better to store player data not in a player.dat file buried in a folder with there name, but instead just a <planyername>.dat file
I hope Dynban 2 is revived the mysql storage would be much better
-
View User Profile
-
Send Message
Posted Feb 3, 2013'&b{PLAYER} has been kicked. Reason: &f{REASON}'
Possible to make it so that...
'&b{PLAYER} has been kicked by {COMMANDSENDER}. Reason: &f{REASON}'
also if you just do commands like /dub
then you get errors, when perhaps it should just display the help for that commands usage.
-
View User Profile
-
Send Message
Posted Feb 2, 2013My favorite plugin for administration finally out. Thanks! Greetings from Polish.
-
View User Profile
-
Send Message
Posted Feb 1, 2013Finally... DynamicBan 1.2.9! Make sure to check out the configuration section on the old page (which is already updated).
-
View User Profile
-
Send Message
Posted Jan 29, 2013@XeonG8
As nobody reported any errors I assume that it does.
@djaddi
Yes I know that I failed. I did intend to release the update two days ago, but hardware issues have kept me from doing anything. Sorry for the delay everyone.
-
View User Profile
-
Send Message
Posted Jan 28, 2013Is this working with 1.4.7 ? I can't remember now I chucked the plugin a while back because of some errors..
-
View User Profile
-
Send Message
Posted Jan 22, 2013@Unknown_Mage
That idea is quite good actually. I'll check if I can add that (intended to release the update this weekend, not sure if I have enough time).
@fifty_seven
The current storage system is not suitable for this as the suggested command would require the plugin to go through all player files.
-
View User Profile
-
Send Message
Posted Jan 22, 2013Great plugin. Is it possible to add a function where i can check who banned who at a list. For example:
/dyncheck fifty_seven
Then ill get a list with all players who are banned by me
Greets fifty_seven
-
View User Profile
-
Send Message
Posted Jan 22, 2013Good ban plugin!Keep update plz!
-
View User Profile
-
Send Message
Posted Jan 20, 2013@spetznack I haven't tested it myself, but I think he means that it already says who gives the warning.
If not, you could have your staff (mods/admins) place "By (Player)" inserting their in game name at (Player) for the reason of the warning. I am sure that when looking up warnings, it should also state the reason.
-
View User Profile
-
Send Message
Posted Jan 20, 2013@djaddi
QUOTE djaddi: "I should mention that I don't see any need to change this in the future as the warning-messages have a variable to display the sender."
Am I missing something? :S Can we check who made the warn somehow? Do you mean that we can check the logs for the command that was sent when the warn was made?
For me it's not a problem, since I can access the logs. But I would imagine it could be useful for players and staff members without ftp access to be able to see who made a warn.
No stress though, it was just a future request :)
-
View User Profile
-
Send Message
Posted Jan 19, 2013@spetznack
That won't be changed in the next update, it would require too much time to change the storage and it would require additional resources because of more complex storage. I should mention that I don't see any need to change this in the future as the warning-messages have a variable to display the sender.
-
View User Profile
-
Send Message
Posted Jan 17, 2013Hi! Could you add another line for each warn that tells you who gave the warn?
Thanks :)
EDIT: I'm talking about the /dst command BTW :) when players are going to ask for warn forgiveness, it will be easier to know what happened if we know who gave the warn.
-
View User Profile
-
Send Message
Posted Jan 16, 2013@Unknown_Mage
Of course I could implement such an option or just rename them everywhere, but is that really worth the effort? I'll think about it.
I don't want the message to be delayed, I can however set it to a higher priority (so it will be displayed after everything else - which makes sense because new users that should read the motd usually don't have warnings).
Your ticket was automatically removed because I marked it as fixed.
DynamicBan 2 is currently not being worked on, better don't use it. The update will be ready as soon as I find enough time to test everything I changed (coding doesn't take long, making sure that everything works as intended does).