BanManager - An advanced punishment system

This is a discussion topic for the Ore project, BanManager. View the full project on Ore for downloads and more information.


BanManager

Build Status

Features

  • Fully UUID compliant
  • Supports H2, MariaDB & MySQL databases
  • Player bans
  • Player mutes including soft/shadow muting
  • Player name bans
  • Player reporting system
  • IP and IP range bans & mutes
  • Succinct permissions
  • Integrate punishments with other plugins using the hooks system
  • Warnings support, including a points based system for executing actions when a player reaches each level
  • Customisable messages with variable support, including custom ban and kick screens
  • Supports Bukkit, BungeeCord and Sponge servers
  • Synchronise punishments between servers
  • Free!

Setup Guides

Commands & Permissions

FAQ

Support

Statistics

Plugin statistics tracked with bStats. Opt out by disabling in config/bStats/config.conf.

A new version has been released for BanManager, it is available for download here.


Initial alpha release of an official BanManager port to Sponge

A new version has been released for BanManager, it is available for download here.


  • 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

A new version has been released for BanManager, it is available for download here.


  • 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 #845
  • Reduced ORMLite logging, no longer shows table creation and index logs on first start up

A new version has been released for BanManager, it is available for download here.


  • 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

A new version has been released for BanManager, it is available for download here.


  • Fixed an issue with bans and mutes not broadcasting correctly

A new version has been released for BanManager, it is available for download here.


  • 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 utitlity command, /bmutils duplicates [UUID] [newName], this is to assist with name duplicate issues, see FAQ | Ban Management 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!

  • Fixed chatPriority mapping for Sponge builds

A new version has been released for BanManager, it is available for download here.


  • 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

A new version has been released for BanManager, it is available for download here.


  • 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

A new version has been released for BanManager, it is available for download here.


  • 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

A new version has been released for BanManager, it is available for download here.


  • 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

A new version has been released for BanManager, it is available for download here.


  • Fixed report state missing a default value for some installations

A new version has been released for BanManager, it is available for download here.


  • 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

A new version has been released for BanManager, it is available for download here.


  • 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 Placeholders | BanManager | Ban Management 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

A new version has been released for BanManager, it is available for download here.


  • Fixed bStats preventing plugin enabling on Sponge builds

A new version has been released for BanManager, it is available for download here.


  • Fixed alt checking
  • Added /bminfo
  • Added support for geysermc names in /bminfo
  • Fixed alt notification on join from showing even when no alts found

A new version has been released for BanManager, it is available for download here.


  • 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