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).
@XeonG8
Thanks for the suggestions! Warns should be fixed with the next update, and I'll try my best with everything else; I think i setup the code to store warn reasons, I'll add a method to store kick reasons, right now KoolSource is working on the SQL, as thats the most requested feature
/dst <name>
should display the warnings messages left, maybe even ban messages... don't care how many lines it takes up, would just nice to have that for other mods/admins who might check on a player to see what their other warnings were... then other players can have the perm so they can see for themselves.
really think /dp should also display some sort of ip connecting history, instead just initial ip and last/current ip... its ok.. I guess when ip compare comes in, then some sort of tracking to see if someone tries to log onto another account where the initial ip for that account isn't theirs could be displayed or logged as notification for admin to check on.
dynamic warns... meant to be broadcast.. no one else sees them except the warned players.. can that be changed or fixed?
my old kick script reported message that the reason was to long with dynamic ban... had to shorten the message for it to work.
anyway glad you reworked the plugin, its much better now hopefully continues to improve.
@selfservice0
KoolSource will be working on this, sorry, at this time, there's no definite answer to that..
@CobraBoyFR
Just type dub, that works too! I tested it with essentials, worked fine with me, and just as KoolSource said, you can edit the aliases in the essentials plugin.yml, found in the jar file!
@CobraBoyFR
One way to do this without having the source of the plugin (since you seem comfortable dealing with jars anyway) just open the jarfile for Essentials and modify the plugins.yml file. Remove the "unban" command from the plugin.yml and you're all set :D
-John
When can we expect mysql support?
Hi there ! Love that plugin, but I have 2 questions :
-Can we have the 1.2.3b source ?
-I have a problem with Essentials : By typing /unban, the server don't use DynamicBan but the essentials system. :/
Thanks ! :)
@selfservice0
Yes, there is a reason in it, just type your reason after the name. The message is also customizable if you'd like to set that.
@noahdutch
Thanks! Let me know how it ran, I'd love some feedback!
@Tombikos
UltraBans is a great plugin, however, people have been complaining about performance issues that I believed I addressed in my latest dev build 1.2.3b
is it better than UltraBans?
This seems like a really cool plugin! I will have to make sure I check it out!
No option to include a ban reason in the ban message?
No mysql support yet =o
@Enrux
What I'll do is create a file. This file will store the IP, and the name that used that IP last. When a player joins, I'tll announce to admins that its the same as the person who last used it, and then update it with the new players name, so when the other player comes, itll announce, too, i think it should be fairly easy
- xDrapor
I believe it would be great that 'IP Compare' from the todo list shows you a message when two users connect from the same IP
and great plugin! :D
@dabomb665m
Currently it does not, but I will be adding it, as soon as I can -xDrapor
@DynamicDev
Looking at your features/todo-list, it looks like currently do no allow Asterisks in your IP bans correct? (range bans). Would love to have this feature whenever it becomes available.
Ex. ban 111.111.*
@KoolSource
Thanks alot for the help! And I'd love someone who can help with the SQL, I'll be fixing a few bugs and then I'll update my github! I plan on adding a exempt list, where you can bypass IP-Bans if you are on the list, simple really.
@deleted_7554077
Ban the account, not the IP address.
-John
@KoolSource But what about multiple legit accounts from same IP?
How I ban one brother without banning the other?
Thanks
@deleted_7554077
Bukkit, most of the plugin developers, including myself do not and will not support people who are running cracked servers. If you want to host a legitimate server then people will be more likely to support you. Otherwise your on your own for the most part.
-John
@KoolSource I run a cracked server but that doesn't really atm.
I have a brother and more people who play minecraft have brothers so they share the same ip.
How can i ban a person who has a same ip with another player but I only want to ban one person for that player.
Thanks.