Fixed timezone offsets being applied twice - for example, if your timezone was UTC+2, the time was calculated as 2 hours + 2 hours (4 hours) instead of 2 hours. This fix affects the "use_timezone" and "use_database_time" options if your system timezone is not UTC+0. This fix only affects the displayed dates and not the actual duration of punishments.
Fixed an issue where if server.yml was copied across servers, affected instances would generate more servers than necessary (this would stop as soon as the instances are reloaded or restarted for the first time). LiteBans will now automatically reset the servers table if it has reached the server limit (65535 servers) - all of the unused server entries will be deleted in order to fix synchronization. No intervention required.
Improvements:
Added 1.16 hex color support (simple format: #000000 - #FFFFFF) - hex colors are now supported in all messages, including disconnect messages, punishment reasons, and broadcasts.
Added "/litebans unlink" command. This command can be used to unlink all IP addresses from a specific user for /alts. It serves a similar function to "/litebans cleariphistory" but allows punishment history to remain accessible without requiring "/litebans fixhistory" and only targets one user at a time.
Optimized /history and /staffhistory commands for large databases.
The `litebans.exempt.bypass` permission is now locked behind a config option. If you want certain ranks to be able to punish exempt players, set "allow_exempt_bypass: true" in config.yml. This change addresses a common case where people are concerned about operators banning other operators, all of whom would have exempt bypass permissions by default. Console can still ban exempt players regardless of this option. Note that this option will be enabled if it hasn't been added to your configuration yet, so this permission will only be locked for new configurations.
Added "silent" config option to make punishments silent by default.
Added "-p" (public) flag which makes punishments non-silent even if the silent flag is specified (or implied) before it.
The `ignored_history_servers` option (which allows disabling IP history recording for specific servers under BungeeCord) now also supports Spigot-side instances - if you add 'local' to the list, the configured server will not record IP history on login. This is useful for networks which have an authentication server but don't use AuthMe.
Staffrollback will now rollback unbans and unmutes, reactivating punishments that were deactivated by the target player.
Added /unwarn broadcast
Fixes:
Fixed a very old issue: when a duration is displayed for a recent punishment, it would say "59 minutes" rather than "1 hour", for example. Recent punishments will now have their duration rounded up towards the original duration. This means that if a player is punished for 3 days, they will see "3 days" remaining instead of "2 days, 23 hours, 59 minutes" remaining with the initial disconnect message.
Fixed chat prefixes/suffixes (executorPrefix / playerPrefix) not showing chat colors correctly in certain messages.
Display names longer than 128 characters will now be shortened to 128 characters rather than giving an error.
Importing from LiteBans will no longer allow duplicate entries (except for IP bans).
API changes:
When LiteBans cancels a chat event, instead of replacing the entire message with "[event cancelled by LiteBans]" it will prefix the message so that the original message can still be extracted from the event.
Minor improvements:
The default database timeout is now 25 seconds rather than 30 seconds. Why an odd value? This brings it out of line with the built-in server crash timeout threshold of 60 seconds which makes it less likely for LiteBans to log an error precisely when the thread dump is logged to console - this can make the thread dump render incorrectly and/or mislead people into thinking that LiteBans is somehow involved with a server crash when it's not.
LiteBans will now show a warning on startup if duration limits are configured incorrectly. The limits, when unconfigured, will now default to 27 seconds instead of 10 days (this prevents the misconfigured group from being checked first).
Added executor variables (prefix/suffix support) to mutechat broadcast.
LiteBans will now prefix cancelled chat events under BungeeCord in order to properly indicate that misbehaving chat plugins are processing cancelled chat events. Previously this was only done for Spigot-side plugins.
Some commands (e.g. /checkban and /warnings) will now show the targeted user's last recorded name, if their old name is given, for online-mode servers.
Added "totalKicks" variable which represents the total amount of kicks in the database.
Added debugging messages for exempt permissions at debug level 1.
Added debugging messages for /unban, /unmute, /unwarn at debug level 1. (This is to help confirm cases where servers have both online-mode and offline-mode UUIDs being used simultaneously)
Fixed an error when checking history for a player who has no punishment history.
2.6.2:
Fixes:
Fixed $activeBans, $activeMutes, and $activeWarnings not working as intended since version 2.6.
Minor improvements:
The permission error message from messages.yml will now be used for all permission errors. (Only affects Spigot)
2.6.3:
Fixes:
Fixed PostgreSQL connection error "Properties for the driver contains a non-string value for the key connectTimeout". This does not affect any other drivers (MySQL, MariaDB, H2).
2.6.4:
Improvements:
Added "dupeip_scan_limit" option - this allows you to limit the number of accounts scanned in /dupeip or /alts per IP address. The default is 20 accounts per IP. Accounts are sorted by last login date (in descending order), which means that the oldest accounts will disappear first.
The /dupeip command now supports a limit argument like /history and /staffhistory. If no limit argument is provided, the configuration limit is used.
Fixes:
When changing timezones towards a timezone with a negative offset, LiteBans will no longer consider punishments made in the "future" for ban cooldowns. (This caused players without cooldown bypass permissions to be unable to create punishments for up to 24 hours since the timezone was changed) - this does not affect positive timezone offsets.
When resetting the database with "/litebans reset-database", the ID counter for new punishments will be reset to 0.
Fixed an issue that could (very rarely) randomly cause LiteBans to prevent the server from shutting down properly under certain conditions.
Minor fixes:
Fixed some errors which could rarely occur on disable due to async events from unregistered listeners still running after the plugin has been fully disabled.
2.6.5:
Important fixes:
Fixed an error which always occurred on startup under the Spigot version since version 2.6.4.
Fixes:
Fixed the new `silent` configuration option not applying to kicks.
2.6.6:
Improvements:
Optimized unban/unmute commands for very large databases.
2.6.7:
Important fixes:
Fixed a startup error (ConcurrentModificationException) which could occur randomly in rare cases since version 2.6.6.
Fixes:
IP bans which affect players who have never joined the server before (no IP mapped to IP ban) will no longer unban all such players (banned players with no IP recorded) when the IP ban is removed or overridden.
2.6.8:
Improvements:
IP bans targeting already-banned IPs will no longer override each other when a different account is targeted.
Added support for importing from BanManager v7 (tested against version 7.2.2)
Fixes:
Fixed non-global punishments overriding global punishments if executed in a specific order (first global, then non-global).
Fixed old player names being shown in certain cases when more recent player names are recorded.
Fixed offline-mode UUIDs being used as fallback when an online-mode account is not found when targeting a player who has never joined the server before (only affects the Spigot version).
Fixed LiteBans->LiteBans import reporting zero bans imported (bans were still imported successfully, and console was notified of the correct amount).
API changes:
Fix: entryRemoved() didn't fire when a punishment was overridden rather than being removed directly.
Minor improvements:
Added `litebans.notify.warned.offline` permission - players without this permission will no longer receive a list of warnings given while they were offline.
2.6.9:
Improvements:
Optimized the /unmute command: it will now only check online players that are known to be muted rather than checking / refreshing all online players.
Exempt permissions and exempt bypass permissions now default to `false` instead of defaulting to operators.
Fixes:
Fixed a crash when using LiteBans commands with command blocks.
Fixed /staffrollback not unmuting or re-muting online players until they re-join the server.
Minor fixes:
Fixed the first ban ID being shown as ban #0 instead of ban #1 in certain messages. Subsequent bans are unaffected and reconnect messages are unaffected.
Fixed /banlist showing an empty last page in certain cases.
Fixed warning actions calculating recently expired warnings as active ones in rare cases.
Fixed executorPrefix/executorSuffix not working as intended in /mutechat broadcasts (no other broadcasts affected).
Fixed database initialization time being calculated incorrectly in certain cases (e.g. when resetting the database)
2.6.10:
Improvements:
Updated HikariCP dependency: 2.6.3 => 4.0.3. This should help with certain database related errors on certain MySQL server configurations.
Fixes:
Fixed /staffrollback error with H2 database since version 2.6. MySQL users unaffected.
Fixed non-global server-scoped mutes being removed incorrectly in certain cases (when unmuting a player from a different server scope, but they are still muted on the current server scope, they could be unmuted until next login) since version 2.6.9.
Fixed a bug which could cause a startup error under certain conditions. Possibly fixed some different startup errors that I can't replicate myself.
Minor improvements:
Added permission to use the "-p" flag ("litebans.public")
Drivers are now placed in "plugins/LiteBans/lib/" rather than "plugins/LiteBans/" - drivers in use will be moved automatically after updating.
Added "max_lifetime" option, default 30 minutes. In most cases, this does not need to be changed.
Minor fixes:
Fixed /warnings showing expired warnings as active in certain cases where the 12-hour expiry timer hasn't triggered yet.
2.6.11:
Improvements:
Added "keepalive" option for database pool configuration, disabled by default.