Added template actions - like warning actions, you can specify commands to run. This can be applied to any ladder step of templates, and any number of commands can be specified.
Added command completion for templates (tab complete support).
Added warning template support. With template actions, you can now have custom warning categories with a unique set of ladder-based warning actions per category. The custom messages under the template will reach online & offline warned players based on ladder progression.
Added kick template support (reason & message templates)
Templated mutes will now send the template message each time a muted player tries to chat, and not only as the initial message.
Players who have been allowed to join the server via "/litebans allow" are no longer exempt from direct bans. They will only be allowed to join the server if the IP ban which affects them was used against a different account.
Added staffrollback security option to restrict the /staffrollback command to console, enabled by default.
Added server scope support for "/litebans reset-database", which allows you to clear all punishments specifically for one server instead of globally. A server scope must now be provided to use the command, and it will instruct you on how to do so when confirming the database reset.
Optimization: Removed Spigot secondary player login listener, this now runs async. This event listener was reported to cause high timings on certain servers, which I could not replicate.
Fixed a startup error which could sometimes occur when specific plugins lacking library relocation are installed under Java 18.
Fixed a startup error which could rarely occur when other plugins stop the server asynchronously immediately on startup (while plugins are still busy loading) due to errors unrelated to LiteBans.
Fixed previous IP addresses not being scanned if they were involved with a previous username no longer in use (when `dupeip_scan_all_ips` is enabled).
Fixed /lockdown not working under Bungee/Velocity specifically when used from the console without specifying a non-default server scope.
Fixed kicks not being removed by /prunehistory.
Fixed removalReason not working in /unwarn broadcasts, and fixed API unwarn events not having removal-related information either. This does not affect unbans or unmutes.
Fixed a startup error with unknown causes which does not occur on my testing servers under 1.19.
Fixed database upgrades not working in specific cases affecting under 1% of users due to unknown causes. This issue has never been replicated, and the steps to replicate it are a complete mystery, so the fix isn't guaranteed to work, but it should work. Hopefully. Try it and see.
Minor improvements:
Added helper for Public Key Retrieval related connection errors.
The warning expire_after option can now be configured as "permanent", which is more user-friendly than "-1" and doesn't require quotes to work.
Added limit function to /warnings, like /history & /staffhistory
Added environment configuration (LITEBANS_CONFIG) for container usage. Example: LITEBANS_CONFIG='{"sql.address":"localhost:1234"}'
Minor fixes:
Fixed permission_error message from messages.yml not being shown instead of the builtin no_permission message from messages.properties in all cases under BungeeCord (Spigot version unaffected)
Fixed kicks being shown as active.
Fixed a rare error which could occur on shutdown or when the plugin has been disconnected from the database.
Fixed a rare error which could occur on shutdown when commands are busy running while the server is stopping.
Fixed hover text errors when a message is configured in a way that causes a single word to be placed directly after the } (closing the hoverText definition with trailing text without spaces) whether directly or indirectly.
Offline players with dots in usernames (not as prefixes, those are already supported for Geyser/Floodgate. Specifically offline-mode servers which permit invalid usernames) will no longer be seen as IP addresses, unless their name consists of numbers and dots.
2.10.1: Important fixes:
Warning templates will no longer count expired warnings towards the ladder.
Warning templates no longer inherit `expire_after` duration in config.yml.
Fixed database errors related to Unicode messages by setting the correct character encoding for MySQL servers which don't use Unicode by default (this fix only affects databases created by older versions).
Fixes:
Fixed hex colors within hover text not working correctly.
Fixed startup error when ProtocolLib is not present since 2.10.0 (no side effects).
Fixed MariaDB specific startup warnings since 2.10.0 (no side effects).
Tab completion will no longer suggest player names past the first argument.
Minor improvements:
Added dupeip end message, blank by default.
2.10.2: Important fixes:
Fixed broken import function since 2.10.0.
Fixes:
Fixed H2 database startup error since 2.10.1.
Fixed index creation not working on older MySQL database servers due to changes in 2.10.1.
2.10.3: Improvements:
Templates assigned permissions now also require that permission for the template to be used or tab completed.
Added ladder support for kick templates.
Fixes:
Fixed certain Unicode characters causing database errors, because `utf8_unicode_ci` was the default encoding instead of `utf8mb4_unicode_ci`. This fix drops support for older 5.x MySQL servers which don't support this encoding.
Warning templates will no longer present the `message` node based on the ladder step above the one it was intended for. Other nodes (reason, permission, duration, actions) unaffected.
Fixed error handling for invalid configurations under Bungee/Velocity broken since 2.10.0.
Fixed errors related to switching database types without restarting the server.
Minor improvements:
Players without "litebans.admin" permission will no longer be able to close hover text using "}" in ban reasons.
Minor fixes:
Fixed Public Key Retrieval error helper not running if the connection fails on startup.
2.10.4:
Improvements:
Added a `console_cooldown` option for specific use cases (e.g. throttling anticheat bans), one second by default. Unlike player cooldowns, this does not stop the console from punishing multiple players at once, it only protects players from double punishments.
Updated database driver: MariaDB (3.0.6 => 3.0.7)
Fixes:
Fixed ban & mute templates presenting the `message` node based on the ladder step above the one it was intended for. For ban templates, the initial disconnect message was unaffected.
Fixed `ignored_kick_messages` not working as intended since version 2.10.3.
Fixed /lockdown kicking players who have litebans.lockdown.bypass (Bungee and Velocity instances are unaffected).
Fixed kick templates not respecting template permissions.
Fixed IP bans overriding other IP bans when the same account is already banned but a different IP address is targeted for the IP ban. (only IP bans matching identical UUID+IP will override now)
Fixed startup errors when upgrading very large databases (> 1M bans) caused by timeout.
Fixed a J9VM specific error.
Minor improvements:
Added "afk" to the default ignored_kick_messages list.
The "tempbanip" and "tempmuteip" command aliases are now supported under Bungee & Velocity.
The "/litebans allow" command can now be used to allow UUIDs which have never joined the server before, not just names.
Exempt messages now support more variables (e.g. playerDisplayName).
Minor fixes:
Fixed a startup warning that occurs under MySQL (but not MariaDB).
Fixed console bans from proxy instances showing server origin as the network name rather than the target's server name if they are online.
Fixed ProtocolLib error when using very outdated versions of ProtocolLib.
Fixed again: permission_error message from messages.yml not being shown instead of the builtin no_permission message from messages.properties in all cases under BungeeCord (Spigot version unaffected)
Fixed "/litebans allow" error when attempting to allow a user who has never joined the server and doesn't exist either (this operation would fail regardless of the fix).