BanManager icon

BanManager -----

Cross-server banning, mutes, warnings and much more!




  • Fixed muted blacklist sub commands on bukkit builds
  • Fixed global sync to only remove local punishment if not a duplicate
  • Lowered default polling timings in schedules for new installations
  • Fixed Y2K38, temporary punishments past the year 2038 no longer cause an error
  • Added resource loading interference detection. Outputs an error message informing users of the plugin preventing BanManager loading its own resource files
  • Added [created] token to ban deny messages
  • Updated UTF8 collations (utf8mb4 & utf8mb4_unicode_ci) for new installations
  • Removed enabled config option for local database, this is always required
  • Fixed H2 /bmactivity incompatibility causing malformed results to show. This command now requires INET6_NTOA support in MySQL/MariaDB
  • Added fast IPv6 conversion mode for those updating from an older pre-IPv6 BanManager version
  • Fixed compatibility with older Minecraft versions (1.8) by shading slf4j for bukkit
  • Fixed exempt permissions for temp ip ban and mutes
  • Updated the default website default message for /bminfo with the new webui format, setting this to empty an empty string now also prevents it from showing
  • Added [actor] to deniedNotify messages
  • Fixed the silent flag in /kick command from being ignored
----------, Sep 19, 2022

  • Fixed offline UUID lookups
  • Fixed MySQL driver loading in Sponge
  • Added new events PluginReloadedEvent & PlayerDeniedEvent to resolve issues with reloads and pin parsing in WebEnhancer addon
----------, May 2, 2022

  • Added bm.command.unmuteip.own & bm.command.unbanip.own permissions
  • Add username in front of Muted messages to see who is writing muted messages, thanks @TomLewis for the PR
  • Added BmAPI.getPlayers(ip) method
  • Fixed a race condition on getPlayer Bungee implementation
  • Added [created] token to discord messages
  • Refactored build process to gradle (jars may be slightly bigger whilst we continue to optimise the new build system)
  • Fixed an NPE when specifying an unban ip reason
  • Added messagesFromActor in discord.yml to toggle messages from users in DiscordSRV
----------, Mar 11, 2022

  • Fixed bStat preventing plugin from starting in some scenarios, thanks to @Sir-Will for the PR!
  • Remove erroneous System.out
  • Fixed quick disconnects causing NPEs, thanks to @Kadeluxe for the PR!
  • Added report discord notifications
  • Bumped mysql/mariadb drivers and HikariCP
  • Fixed incorrect muteip disallowed message in default messages.yml, thanks to @MattW-source for the PR!
  • Empty messages from messages.yml are no longer sent to players, thanks to @Kadeluxe for the PR!
  • BanManager's chat handling (including muting etc) can now be disabled by setting chatPriority to NONE in its config, thanks to @Kadeluxe for the PR!
  • Added baniprecords to /bmdelete, requires bm.command.delete.baniprecords permission to use
  • Added baniprange & tempbaniprange to exemptions.yml, so certain players can bypass range bans
  • Added exemption permissions to bypass maxOnlinePerIp & maxMultiaccountsrecently config options, requires bm.exempt.maxonlineperip and bm.exempt.maxmultiaccountsrecently permissions respectively
----------, Jan 2, 2022

  • Fixed bStat preventing plugin from starting in some scenarios, thanks to @Sir-Will for the PR!
  • Remove erroneous System.out
  • Fixed quick disconnects causing NPEs, thanks to @Kadeluxe for the PR!
  • Added report discord notifications
  • Bumped mysql/mariadb drivers and HikariCP
  • Fixed incorrect muteip disallowed message in default messages.yml, thanks to @MattW-source for the PR!
  • Empty messages from messages.yml are no longer sent to players, thanks to @Kadeluxe for the PR!
  • BanManager's chat handling (including muting etc) can now be disabled by setting chatPriority to NONE in its config, thanks to @Kadeluxe for the PR!
  • Added baniprecords to /bmdelete, requires bm.command.delete.baniprecords permission to use
  • Added baniprange & tempbaniprange to exemptions.yml, so certain players can bypass range bans
  • Added exemption permissions to bypass maxOnlinePerIp & maxMultiaccountsrecently config options, requires bm.exempt.maxonlineperip and bm.exempt.maxmultiaccountsrecently permissions respectively
----------, Dec 22, 2021

  • Fixed alt checking
  • Added /bminfo <ip>
  • Added support for geysermc names in /bminfo
  • Fixed alt notification on join from showing even when no alts found
----------, Aug 2, 2021

  • Fixed player name case sensitivity for H2 users
  • Fixed player name for report closed message - Thanks to @TrekkieEnderman for the PR
  • storageType in config is now case insensitive
  • Added BmAPI.toTimestamp method
  • Added ignoreSilent option to discord.yml, controls whether silent punishments should be sent, defaults to true
  • Bumped bStats to v2 to meet Sponge Ore guidelines
  • Added timeAssociatedAlts to ignore old ip address associations, disabled by default
  • Added PlaceholderAPI support, see https://banmanagement.com/docs/banmanager/placeholders for the full list
  • A message is now sent to players with the permission bm.notify.alts when an alt joins the server
  • Added punishment [id] token to messages
  • Fixed /reports info not running from the console
  • Removed unused warningCooldown option, use cooldowns instead
  • Removed unused incorrectFlagUsage message
  • Fixed /bminfo -ips history using the wrong dateTimeFormat message
  • Added api-version to remove legacy warning on newer Spigot versions, should not affect older versions
  • Block muted players from using signs (Bukkit & Sponge) and books (Bukkit only)
    • requires the following permissions to enable:
      • bm.block.muted.sign
      • bm.block.ipmuted.sign
      • bm.block.muted.book
      • bm.block.ipmuted.book
  • Fixed reports help not showing sub command correctly
  • Added option to configure a different uuid/name API
----------, Jun 6, 2021

  • Fixed report state missing a default value for some installations
----------, Feb 9, 2021

  • Fixed `/reports list` running in a sync task
  • Fixed `/bmrollback` argument parsing
  • Expose connectionTimeout, maxLifetime, allowPublicKeyRetrieval connection options
  • Added discord notifications on unbans/unmutes
  • Fixed `/bminfo` command not always returning results for players consisting of numbers only - thanks to @lekro for the fix
  • Use webhooks for discord integrations, notifications show as actor (name/avatar)
  • Fixed `/bminfo` website not opening as a link on Sponge
  • Fixed unban/unmute commands broadcasting when silent
----------, Feb 7, 2021

  • Fixed issue preventing global temp bans from kicking players on sync
  • Fixed Discord warning notification errors
  • Fixed slf4j warnings on start up
  • Fixed BungeeCord mutes not blocking chat
  • Fixed duplicates name change validation issue
  • Fixed duplicates command usage showing /bmutils twice
----------, Jun 16, 2020

- Fixed typo in temp ip ban causing affected players to be kicked outside the main thread
- Save lastChecked values on shutdown, fixes global punishment sync creating duplicates on quick/repeated start/stops
- Fixed ip unbans not being removed from memory correctly
- Unban/unmute reasons are optional again, caused by a fix in previous release
- Fixed global sync kick NPE in certain scenarios
----------, May 16, 2020

  • Added report support to hooks config

  • Added cooldowns for some punishment commands in config.yml

  • BREAKING report/warning cooldown options moved to cooldowns config area

  • Soft mute messages are now broadcasted to those with bm.notify.muted permission

  • Force bad ip values from v7 conversion to 127.0.0.1

  • Fixed temp player bans/mutes not always creating records on expiration

  • Fixed global sync duplicate errors

  • Fixed /bminfo with no args to run against player executing command

  • Fixed /unban and /unmute not showing usage
----------, May 12, 2020

- Fixed not ignoring cancelled AsyncPlayerPreLoginEvent events, fixes compatibility issues with other plugins - thanks to mxs42 for the PR!
- Fixed player being notified when a soft mute is unmuted - thanks to mxs42 for the PR!
- Fixed command registration causing issues with commands.yml
- Fixed invalid players in /alts throwing an NPE
- Fixed /alts message colours
- Fixed /alts name clicking, no longer executes /bminfo against the wrong player name
- Fixed message colours in BungeeCord builds
- Fixed duplicate join notifications in BungeeCord builds


- Added [notes] to info.stats.player message
- Added [player] to info.connection message
----------, Apr 28, 2020

- Added checks to console.yml name to prevent duplicate names
- Added discord notifications on player kicks and ip bans
- Added [players] variable to discord ip ban notification messages
- Added baniprecords to /bmclear
- Added tab completion to reasons (#reasons) and added a config option to block invalid reasons being used, thanks to JOO200 for the PR!
- Added IP mute methods to BmAPI, thanks to mxs42 for the PR!
- /reports list and reports on join now shows newest reports first
- Added utility command, /bmutils duplicates [UUID] [newName], this is to assist with name duplicate issues, see https://banmanagement.com/faq#duplicate-issues for usage instructions
- Raw JSON messages are now supported within messages.yml for further flexibility, thanks to mxs42 for the PR!

- Removed INET6_NTOA from /bmactivity fixing compatibility with older MySQL/MariaDB versions
- Fixed actor lookups when duplicate names present, now correctly UUID based
- Fixed duplicate notification messages for ip bans and mutes when syncing changes
- Fixed NPE when temp muting an offline player, thanks to mxs42 for the PR!
- Fixed command blocking on mute/soft mute
- Fixed /reports list and on join reports not querying the correct state value
- Fixed player name tab completion not handling new players and name changes correctly, thanks to mxs42 for the PR!
----------, Apr 17, 2020

- Added an additional permission check when a BanManager command is executed; this resolves compatibility issues with plugins such as EssentialsX which attempts to proxy/execute another plugin's commands incorrectly
----------, Mar 12, 2020

- Fixed an issue with bans and mutes not broadcasting correctly
----------, Mar 10, 2020

- Removed unused dependencies and general clean up reducing overall jar size
- Fixed global command reason parsing
- Added missing addnoteall notify message
- Stop invalid ip addresses from plugin starting up; this can be caused when running different BanManager versions against the same database/tables
- Catch/log command registration failures for older Bukkit versions for better compatibility with other plugins
- Downgraded bStats in Sponge as it was causing the server to crash on start up when BanManager was installed with other plugins using bStats
----------, Mar 7, 2020

- Enable H2 by default, now works out of the box with no configuration needed
- Added Discord support for Sponge via MagiBridge
- Fixed Sponge command argument handling
- Reduced ORMLite logging, no longer shows table creation and index logs on first start up
----------, Mar 4, 2020

  • Breaking To support other servers API classes have been relocated moved and been updated. Plugins integrating with older BanManager versions must be updated.
  • Added H2 support and set as default storageType
  • Added BungeeCord and Sponge builds
  • Added IPv6 support (database schema changes will applied on start up) Backup your database before updating
  • Added DiscordSRV support (Bukkit only)
  • Added AdvancedBan importer
  • Added PlayerKickedEvent
  • Added clean up option to player history which will not remove history if the ip address is currently banned
  • Added bStats (can be disabled in bStats/config.*)
  • Fixed MaxMind Lite integration by adding license key support
  • Fixed silent punishments broadcasting on sync
----------, Mar 2, 2020

  • Fixed JDBC issue of timezone mapping errors when attempting to connect to older MySQL versions on start up
----------, Jun 11, 2019

  • Fixed /reports list error due to issue with countOf in newer ORMLite version. Also fixes error thrown when some players joined the server.
----------, May 24, 2019

  • Breaking Dropped Java 7 support, plugin now compiled against 8.
  • Added MariaDB support, change the new field storageType in your config.yml from mysql to mariadb after updating to use MariaDB drivers
  • Shaded in newer mysql connector driver, adds MySQL 8+ support
  • Specify plugin events as async, adds support for Bukkit 1.14
  • Correctly handle time difference check returning a double for some database drivers
  • JSONified /alts and possible alts in /bminfo
    • Clicking player name will execute /bminfo
    • Player names are now colour coded in this command:
      • Green = never banned
      • Yellow = Banned previously
      • Gold = Temporarily banned
      • Red = Perm banned
  • Allow clicking report ids in /reports list, this will run /reports info <id> on each report
  • Added [expires] token support to hooks
  • Fixed missing unique key on player mutes table
  • Added note amount on player join
    • Requires permission bm.notify.notes.joinAmount
    • Clicking this message will execute /notes <player> command
    • Players with all permissions or op must have bm.notify.notes.join negated to prevent both messages from showing
  • Fixed list others reports permission, now correctly works as documented bm.command.reports.list.others thanks to @Ghostlyr for the PR!
  • Bump dependencies
----------, May 13, 2019

WARNING, BACK UP DATABASE BEFORE UPDATING - This release converts all BanManager tables from MyISAM to InnoDB
  • Shade Guava 17.0, fixes MC 1.12
    • Whilst this increases final jar size, it maintains backwards compatibility with older MC versions
  • Added [id] to /report notification message
  • Added lookups via UUID to /bmactivity, e.g. /bmactivity <uuid>
  • Added multi account check, thanks to @sigmaroot
    • Allows denying accounts with the same ip address within a configurable time period
  • Added MySQL SSL support
  • Added /bmutils missingplayers, this attempts to re-add any missing players associated to a punishment in the players table
    • Requires bm.command.bmutils and bm.command.bmutils.missingplayers permission to use
    • Lookups are sent to Mojang's API, may fail if rate limit reached
  • Added current ip ban to /bminfo player lookup
  • Safely handle duplicate punishment commands
    • Previously multiple staff members attempting to ban the same player at the same time would result in a duplicate entry error within the console; players are now sent a message stating that they are already banned/muted.
  • Added bm.exempt.alts and alts to exemptions config
    • On join, players with this permission will not cause alt actions to take place
    • Players with alts set to true in exemptions config will not display in duplicate checks
----------, Oct 8, 2017

  • Render colours within note messages
  • EXPERIMENTAL Configurable chat listener priority, requires a plugin reload or server restart to take affect
  • Fixed sub commands (e.g. /report Assign) being case sensitive
  • Added report [id] token to report teleport
  • Fixed issues with kicking players when onlineMode false
  • Added /reports info <id>
    • requires permission bm.command.reports.info
  • EXPERIMENTAL Added /bmrollback <player> <timeDiff> [types]
    • Reverses staff actions
    • NOTE Take care using this, whilst this has been tested, it will cause irreversible changes (ensure you have backups!)
    • Requires permission bm.command.bmrollback

    • timeDiff can be limited via timeLimits config options/perms

    • Deletes bans/mutes/notes/warnings made by the player within the time frame

    • Re-bans any players/ips that were unbanned during the time frame

    • Caveats: Notes and warnings can't be undeleted, any unbans/unmutes made via the -d flag can't be rolled back
  • Fixed an incorrect calculation (+ 1 day at the end of a month) on temp actions. Thanks to sigmaroot for the pull request.
  • Added ability to ban by names
    • /banname <name> <reason>, requires bm.command.banname permission

    • /tempbanname <name> <timeDiff> <reason>, requires bm.command.tempbanname

    • /unbanname <name> [reason], requires bm.command.unbanname
  • Added useSSL=false to JDBC connection URL, this adds compatibility with newer versions of MySQL. Thanks to ColorizedMind for the pull request.
  • Added duplicate name support to /bminfo
    • When multiple players found with the same name, a list is provided
    • Specify which player to lookup via /bminfo <player> <index>
----------, Jan 8, 2017

* Fixed reports assignee table null error.
* /bmdelete and /bmclear now correctly clear all associated report data.
* Disallow creating reports for non stored players. Fixes accidental typos.
* Handle offline UUIDs on join correctly.
* Ignore ip and ip range bans missing actors instead of crashing on startup.
* Throttle deny broadcast messages. Only displays once per minute per player/ip.
* Fixed report listing max page rounding error.
* [BREAKING] Moved Split /report sub commands into /reports. /report <player> <reason>, /reports list etc. The permissions have also been updated, any report sub commands previously under /report, now require bm.command.reports.subCommand permission.
* Handle multiple report ids in some commands, e.g. /reports assign 1,2,3 confuser, /reports unassign 1,2,3 confuser, /reports close 1,2,3 confuser
* Player mute warnings no longer removed on leave, stored for up to 1 day.
* Removed case sensitivity for warning mute reasons.
* Warn of duplicate names in offline mode, no longer incorrectly queries Mojang.
* /reports tp now runs sync, oops.
* Added delete flag to unban command, /unban -d confuser, unbans a player without creating a ban record. Requires permission bm.command.unban.delete.

This update is highly recommended for those using offline mode.
----------, Sep 11, 2016

  • Use case insensitive UUIDs when not in online mode. Fixes offline mode support. Set onlineMode to false in your config.yml
  • [BREAKING] Changed bmactivity permission, now bm.command.bmactivity for consistency.
  • Updated HikariCP to 2.4.7
  • Ensure tasks don't overlap. Fixes connection issues on slow database connections for some users.
  • Optimised startup data retrieval. Faster and less taxing on the database.
This update is highly recommended for those experiencing connection issues.
----------, Aug 6, 2016

  • Leak detection is now configurable, can be disabled by setting to 0.
  • Added more missing default permissions.
  • Fixed incorrect date and actor when listing past bans via /bminfo -b.
  • Added [warnPoints] to bminfo summary.
  • Fixed createNoteReasons option not being honoured. Thanks to sigmaroot for the PR.
  • Fixed ban/mute expiration lengths incorrectly rounding, e.g. 10d showed 1 week, instead of 1 week 3 days. Thanks to sigmaroot for the PR.
  • Ignore command blocks during broadcasts. This fixes incompatibilities with PaperSpigot as well as a possible crash in Spigot 1.10.
  • Fixed typo in unban ip range notify causing NPE.
  • Updated HikariCP to 2.4.6, fixes issue with showing network timeout as an error rather than info in logs.
  • Added /reasons to list all predefined reasons.
  • Notify player when unmuted via /unmute.
  • Added mute on warn, disabled by default.
    • Requires players to type in their most recent warning reason otherwise they will not be able to chat
    • Removed on server restart and player leave
  • Added player join leave history ip history, enabled by default, set logIps to false to disable
    • Usage: /bminfo -i <pageNumber> <player>
    • Requires permission bm.command.bminfo.history.ips
  • Added flag parsing to predefined #reasons.
  • Fixed temp warnings still broadcasting when silent.
  • Converted warning points to decimals. You may now warn a player for x.y points.
  • Fixed geoip config file deleting.
  • Some messages can now be disabled by simply blanking them within the messages.yml file. Please open an issue if you find any that are not affected.
  • Added warning points to bminfo via [meta] token.
    • Requires adding [meta] to history.row in messages,yml
  • Renamed external to global.
    • Configs will automatically convert.
    • This change is to avoid confusion between local and remote databases.
  • Reports
    • Added report states, with custom state support.
    • Added /report tp <id>
    • Assign reports to players via /report assign <id> <player>
    • Unassign reports via /report unassign <id>
    • List reports via /report list [page] [state]
    • Close a report with a comment or command via /report close <id>
      • /report close 2 /ban someHacker Hacking.
      • /report close 3 Resolved in game.
    • Output open and assigned reports on join, requires bm.notify.reports.open and bm.notify.reports.assigned permissions.
    • Fixed new players missing from autocomplete.
    • Fixed /bmactivity player search.
----------, Jun 25, 2016

Resource Information
Author:
----------
Total Downloads: 20,313
First Release: Apr 17, 2016
Last Update: Sep 19, 2022
Category: ---------------
All-Time Rating:
22 ratings
Find more info at banmanagement.com...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings