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 Apr 21, 2013This looks like an amazing plugin but are there aliases for the commands? We have been using the average /ban, /mute, /kick commands for the past year and a half and our staff members might get confused using new commands like /db, /dk, etc.
-
View User Profile
-
Send Message
Posted Apr 21, 2013Great to hear that there is some progress.
You have another supporter here. This plugin truly is great and it does its job properly.
I hope you guys have enough spare time to work on this plugin xd
-
View User Profile
-
Send Message
Posted Apr 15, 2013@add5tar
I'm aiming for perfection, currently working on ban-history, might want to handle that in a separate MySQL table, so far there are only two tables.
-
View User Profile
-
Send Message
Posted Apr 15, 2013@djaddi
Excellent! Thanks for the fast responses guys! :D Looking forward to 1.3! Any guess on when it might be ready?
-
View User Profile
-
Send Message
Posted Apr 15, 2013@add5tar
That's actually a quite simple issue. DynamicBan removes the entire message (if it wouldn't, the server would print an empty line). Naturally, other plugins that try to access the message afterwards can't find anything and throw an NPE. I will set the chat events to a higher priority if I release a new version before 1.3 comes, that should fix the problem.
-
View User Profile
-
Send Message
Posted Apr 14, 2013@add5tar
This is most likely due to the level at which I cancelled my events back when I didn't know the significance of each in the API. I'll do some testing, but what plugins specifically seem to bug with DB?
-
View User Profile
-
Send Message
Posted Apr 14, 2013@xDrapor
That sounds really great!! I have noticed several stack traces and other weird issues.
One other issue I've noticed is that when someone is muted, it causes NPEs to occurr on other chat plugins when someone talks, but essentials mute does not. This makes me think its a problem with the way dynban cancels the chat. Ever had that happen? Maybe it's just specific to my environment though.
-
View User Profile
-
Send Message
Posted Apr 14, 2013@add5tar
First off, thanks for the support!
As for the rest, as of now: Code is optimized and quicker, easier to maintain, as of now, the ban command only takes 4 lines of code due to the object-oriented nature as compared to the previous procedural method.
MySQL is fully working, no external libraries, just JDBC, the native java handler.
Logging is simpler and does not display a messy stack track, gives enough details for debugging though (Might implement auto-pastebin of stack-traces).
For the most part, the improvements are noticeable only in performance and from a developers point of view. The actual improvements will be better time parsing, banishing, and better overall experience with the plugin.
-
View User Profile
-
Send Message
Posted Apr 14, 2013@xDrapor
Awesome news! I love this plugin!! :D
Any teaser info of new features/fixes?
-
View User Profile
-
Send Message
Posted Apr 14, 2013Okay, 1.3.0 update is making good progress. Base is done. Once commenting and code cleanups/tests are done, I will push a new commit.
-
View User Profile
-
Send Message
Posted Apr 7, 2013@CrazehGhost
Try reading the first line of this page. The red one. I was told that red font might be an indicator for something important.
-
View User Profile
-
Send Message
Posted Apr 7, 2013How do I unban all of my RANGE-BANS? Not the /dynban one. Just all range bans
-
View User Profile
-
Send Message
Posted Apr 4, 2013There is a mute function /dm or /dynmute
Where's the permission node? I guess i'll be sticking to commandbook.mute for now for my staff eh..
-
View User Profile
-
Send Message
Posted Apr 3, 2013Are there any perms for this? If so where can i find a list?
-
View User Profile
-
Send Message
Posted Mar 30, 2013@Apple_columb
There is no 2.0.0 The major MySQL and re-code will be released under the 1.3.x branch.
-
View User Profile
-
Send Message
Posted Mar 30, 2013@djaddi
Can I has a link for 2.X version?
-
View User Profile
-
Send Message
Posted Mar 29, 2013@spetznack
I don't think that this issue made your server crash, but here's a fix anyway. That should also make warnings show up on login.
-
View User Profile
-
Send Message
Posted Mar 29, 2013@djaddi
First off, thanks a bunch for fixing the warn display issue. It really made my day even better :)
I do have another issue to put on your table unfortunately.. About 4 hours before I write this message, the server crashed and didn't automaticly restart. From the logs and what people told me, the server started to lag before it suddenly went unreachable.
Here is the servers log: http://pastebin.com/xncHy1x6
List over the plugins that are installed: http://blacksheep.gaming.multiplay.co.uk/file/Plugins.html
BTW Me and Sheeperia is managing the same server :)
-
View User Profile
-
Send Message
Posted Mar 29, 2013@Polowicer
Click!
-
View User Profile
-
Send Message
Posted Mar 29, 2013Meaby add translate for "Reason". I'm from Poland and my kick - message is "Zostales wyrzucony z serwera. Reason: test" and that reason isn't in polish...