DynamicBan

Dynamicban

DynamicBan


Announcement: Hotfix for development builds is out. Use at your own risk.

- Posted on (20/01/2014) by DJ Addi



Features

  • 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


Commands

CommandArgumentsDescription
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.
drlReload the DynamicBan data.
dlistView 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.


Permissions

PermissionGranted
operator or dynamicban.*All commands
dynamicban.ban.playerdb
dynamicban.ban.ipdbip
dynamicban.ban.rangedrb
dynamicban.immune.adddim add
dynamicban.immune.removedim remove
dynamicban.whitelist.adddwl add
dynamicban.whitelist.removedwl remove
dynamicban.purgedpg
dynamicban.kickdk
dynamicban.player.detailsdp
dynamicban.player.standingdst
dynamicban.reloaddrl
dynamicban.tempban.playerdtb
dynamicban.tempban.ipdtbip
dynamicban.unban.playerdub
dynamicban.unban.ipdubip
dynamicban.unban.rangedurb
dynamicban.warndw
dynamicban.mutedm
dynamicban.unmutedum
dynamicban.lockipdl
dynamicban.unlockipdul
dynamicban.checkSame-IP notifications
dynamicban.comparedc


Configuration

  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
# DynamicBan 1.3.0 - 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)
    warn_results:
    # What should happen after a certain amount of warnings?
        - 3: dk {PLAYER} {REASON}
        # Amount of warnings: Command to be executed
        - 5: dtb {PLAYER} 15m {REASON}
        - 7: dtb {PLAYER} 30m {REASON}
        - 9: dtb {PLAYER} 60m {REASON}
        - 10: db {PLAYER} {REASON}
messages:
    # Variables are {SENDER}, {REASON} and {TIME} for temporary actions
    kick_message: "You have been kicked. 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. Reason: {REASON}"
    # The ban message.
    tempban_message: "You have been temporarily banned. Time left: {TIME}"
    # The tempban message.
    ip_tempban_message: "You have been temporarily ip-banned. Time left: {TIME}"
    # The tempipban message.
    ip_ban_message: "Your IP has been banned. 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. 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.
    


ToDo

  • 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).

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of Bodyash Bodyash Apr 24, 2014 at 21:50 UTC - 0 likes

    Need update, time bans doesn`t work (can`t be unbanned, because new json system?)

    http://monitoringminecraft.ru/chart/212.2.130.94%3A25565.pnghttp://monitoring-minecraft.ru/userbars/524550/btn-8F41C4.png

  • Avatar of Bodyash Bodyash Apr 15, 2014 at 23:03 UTC - 0 likes

    when we can see dev build?

    Because it`s best ban plugin o_O

  • Avatar of djaddi djaddi Apr 06, 2014 at 13:59 UTC - 0 likes

    @alzeller1: Go

    Oh jeez, sounds like trouble. Well, the good news is that IP bans won't be affected.

  • Avatar of alzeller1 alzeller1 Apr 06, 2014 at 10:31 UTC - 0 likes

    EvilSeph said on the latest blog post at bukkit.org: Up until this switch to UUIDs, Minecraft has relied on names for many of its core systems (bans, the whitelist, ops, etc.) and plugins have used names for permissions and protections. Once Mojang allow players to change their names at will with Minecraft 1.8, these systems’ accuracy can no longer be relied on. For Minecraft, Mojang have said they'll be handling the transition of bans, whitelist, etc. for the most part, but most Bukkit plugins will need to be updated to use UUIDs to track players instead of names.

    To prepare servers for the switch to UUIDs, server admins should perform an audit on their plugins to determine which ones currently use names for player identification. It is recommended that server admins communicate with the developers of the plugins that they use to ensure that they're preparing for the switch to UUIDs. The types of plugins that will likely be affected include (but are not limited to): permissions, region protection, world protection, chest protection, ownership, teleportation, economy, chat, and ban management plugins.

    Basically, it comes down to this: neglecting to prepare for the switch to UUIDs is the equivalent of running your server in offline mode. With player names no longer being static, anyone could potentially pick up an Admin's username and take over your server or bypass your protections.

    View more information at this link. Please be ready for this, xDrapor and djaddi! Having tons of servers break because of Mojang's small change can cause people to stop using your plugin! I solely rely on your plugin, please make sure to try and get it updated in time!

  • Avatar of BuildCraftMC BuildCraftMC Apr 03, 2014 at 17:27 UTC - 0 likes

    Nevermind, It was because I didn't have Vault. It works now. Thanks!

  • Avatar of BuildCraftMC BuildCraftMC Apr 03, 2014 at 03:17 UTC - 0 likes

    The only error message it gives me is: [21:12:48 ERROR]: Could not load 'plugins/DynamicBan (1).jar' in folder 'plugins'

    I am running in CraftBukkit 1.7.5 Dev Build.

  • Avatar of djaddi djaddi Apr 01, 2014 at 11:03 UTC - 0 likes

    @BuildCraftMC: Go

    That's not very precise. Could you tell me which Bukkit server version you're running? Are there any stack traces or other errors during startup?

  • Avatar of BuildCraftMC BuildCraftMC Apr 01, 2014 at 01:22 UTC - 0 likes

    Hi.

    For some reason, my dynamicban.jar doesnt load in the plugin folder. [21:12:48 ERROR]: Could not load 'plugins/DynamicBan (1).jar' in folder 'plugins'

    Please Help he :(

  • Avatar of djaddi djaddi Mar 31, 2014 at 02:20 UTC - 0 likes

    @spetznack: Go

    The error is thrown because apparently the build number of the Bukkit version that you're using doesn't have the usual format anymore. If this keeps happening with other (newer) versions please notify me about it. Otherwise somebody propably just mistyped the version.

    My guess on the second point is that you made notes this way when warnings had a limit of one per minute (so all others during the same minute were not saved). I removed this limit a while ago. Why don't you just override the ban with a new reason?

    And yes, after 2147483647 warnings the next one will most likely not be saved.

    Last edited Mar 31, 2014 by djaddi
  • Avatar of spetznack spetznack Mar 30, 2014 at 14:08 UTC - 0 likes

    Thing #1: The DynamicBan update check is throwing error: https://gist.github.com/spetznack/0b32abe776c2aaae833f

    Using Spigot: Build #1360

    I regularly check for updates for my plugins so I don't need to have a update-checker running at startup. I have turned it off now but I thought I'd post the issue here to let ya know :)

    Thing #2: I have DynamicBan set to ban players when they receive 3 warns, I remember a little while ago I made some "Ban notes" after the ban was made through giving the player additional warns. These warns was not saved somehow, I might test this later because it's very useful to be able to make "notes" on players after they are banned..

    Is there a limit to how many warns a player can have before new warns will not be saved?

Facts

Date created
Mar 25, 2012
Categories
Last update
Jan 20, 2014
Development stage
Mature
Language
  • enUS
License
All Rights Reserved
Curse link
DynamicBan
Downloads
21,034
Recent files

Authors

Relationships

Required dependency
Vault
Optional dependency
GroupManager
PermissionsEx