Added a powerful punishment template system for bans and mutes, which allows you to specify incremental punishment durations, specific punishment messages, permission-guarded punishments, and more. Templates are explained on the wiki.
Added "/litebans allow" command, which allows you to permit specific players to join while IP-banned or GeoIP-blocked. This is UUID-based, not IP-based, so each account must be permitted separately.
Optimized cross-server synchronization - when a punishment is issued, each server that the punished player is not present on will no longer perform a database check.
Optimized mutes and IP mutes - removed a database check on each involved player when a new mute is applied.
Changed default ipreport_minimum_accounts (1 => 2) in line with previous default behaviour before version 2.8.13. Previously, online accounts were not counted against this option.
Added "require_kick_reason" option to enforce requirement of kick reasons.
Added "dateRemoved" variable to messages.yml to indicate when a punishment was removed.
Durations in the configuration can now be specified in short form (e.g. "7d" instead of "7 days").
Fixes:
Fixed "/litebans unlink" only unlinking the last IP address that a user joined with (all IP addresses will be unlinked now).
Fixed kick cooldowns not working as expected.
Fixed "/banip" alias requiring "litebans.banip" permission instead of "litebans.ipban" under Bungee/Velocity. Also fixed other alias permissions (ban-ip, muteip)
Fixed cross-instance synchronization not working under PostgreSQL. (This issue mainly affects the Spigot version, Bungee/Velocity versions are less impacted)
Minor fixes:
Fixed "$timeSince" in unban/unmute history indicating the time since the ban was placed instead of when the unban was performed (this variable is not configured by default)
Fixed /prunehistory not working on recently expired punishments.
Fixed "temporary players" error under Spigot - this error has no side effects and it should also be exceedingly rare.
Fixed "duration:permanent" possibly not working as intended
2.9.1:
Important fixes:
Fixed database error on first startup with new databases.
2.9.2:
Important fixes:
Fixed database error which specifically occurs after the second startup on a fresh install, and not on upgraded existing installations.
2.9.3:
Fixes:
Fixed /prunehistory & staffrollback errors when no duration argument is given.