LiteBans 2.11 - 2.11.2
Improvements:
Fixes:
- Added randomized punishment IDs ($idRandom), with configurable seed and a unique algorithm. These reversible and unpredictable IDs can be used in /checkban, /checkmute, or you can use "/litebans reveal" to convert a random ID into a real ID. This feature has practically no overhead for servers not using it, as only the sequential ID is stored in the database, and server resources (CPU/memory) required to obscure these numbers are only claimed upon use of this feature.
- Added unban/unmute/unwarn by-ID support (example: `/unban 1234`). This supports regular punishment IDs, but also directly supports randomized IDs which are added in this update.
- Added the ability to run commands when clicking on messages. Variables that are included in the command will be substituted as well. Example: "Test {run: /command $playerName}"
- Added the ability to open URLs when clicking on messages. Example: "Test {url: https://example.com/}". This is only supported for chat messages, as the equivalent JSON in disconnect messages would have no effect if clicked - alas, a client side limitation.
- Added "expire_ladder" template option. Each template of any type can now have a ladder duration. This allows you to set precisely how long a template ladder will last for. For example, if you set `expire_ladder: 50d`, any punishments older than 50 days will not count towards the template's ladder anymore. This is separate from punishment expiry - when the template ladder expires, all of its issued punishments may still be active.
- Added /namehistory command. This command displays usernames and the last login date of each username linked to each account. This can also be used on IP addresses to get a list of usernames per IP (like /alts, but with a login date for each username).
- Added "punish_ip" option to config.yml. When enabled, all punishments will be IP-based by default, so you can IP-ban players by using the /ban command.
- Added automatic SHA-256 checksum verification for all library dependencies. Note that all dependencies have always been downloaded from the official Maven repository over HTTPS.
- Added support for importing from LibertyBans (supported: temporary bans, permanent bans, IP bans).
- Tab completion will now work for all commands even if Essentials is installed, without additional configuration under Spigot.
Minor improvements:
- Fixed template steps with permanent duration creating punishments that expire instantly.
- Fixed kick templates not supporting colours & variables in the kick messages.
- Fixed permitted players (via "/litebans allow") being able to join the server even if they have a ban matching their account directly. There was a check for this, but it didn't trigger as intended.
- Fixed short-format durations in the configuration specified in days (e.g. `30d`) being processed as 0 seconds. Other duration units unaffected, and long format (e.g. `30 days`) unaffected.
- Fixed /staffrollback & /prunehistory removing all of the user's punishments if an invalid duration was provided, instead of giving an error message.
- Fixed PostgreSQL startup error ("Something unusual has occurred to cause the driver to fail") due to a bug in the database driver (negative timeout caused by driver calculated integer overflow)
Minor fixes:
- Added locale setting to messages.yml. This option controls the language which dates are represented with, so if your host machine has a different system locale than you wanted and you are unable to change that system locale, you can set it manually instead.
- Templates with no duration option will now permit the duration to be specified manually through the command.
- Under Bungee & Velocity, disabling mutes in the configuration will now let the backend servers handle mute commands instead. This can serve as a workaround for the issue where muted players get kicked if they try to chat while muted under 1.19.2+, if you still need LiteBans to be installed under the proxy.
2.11.1:
- Reduced unnecessary on-demand Mojang API requests.
- Fixed /ipban requiring `litebans.ban` permission in addition to `litebans.ipban`.
- Fixed JSON hover text not functioning in messages when hover text is configured on a new line with no spaces after the new line.
- Fixed /tempbanip and /tempmuteip checking inconsistent permissions (litebans.tempbanip instead of litebans.ipban) under Bungee & Velocity.
- Fixed mutechat bypass permission only applying when chat messages are sent and not when blacklisted commands are used.
- Fixed an error which could occur specifically under BungeeCord if another plugin stops the server while the server hasn't loaded yet, while LiteBans is attempting to load.
- Fixed punishments of the same type submitted at the exact same time possibly reporting incorrect IDs in immediate post-punishment messages (e.g. broadcasts)
- Fixed "temporary players" error under Spigot again - this error has no side effects and it should also be exceedingly rare.
- Fixed errors caused by having an invalid duration format configured. A warning will be logged, and the default format will be used if the duration format is invalid.
- Fixed malformed configurations causing errors in specific cases.
- Fixed two types of startup errors with unknown causes which could not be replicated. Neither of these errors were reported to occur under Bungee or Velocity.
Fixes:
API changes:
- Fixed kicks matching `ignored_kick_messages` not being processed correctly (kick was broadcasted, and not added to database, but player wasn't kicked).
2.11.2:
- Fixed punishment IDs being set to -1 on the event API. Entries in-database unaffected.
Improvements:
Fixes:
- Added support for setting timezones (/litebans timezone) under local H2 database.
- Updated database driver: MariaDB (3.0.7 => 3.1.2). Notably, 3.1.2 includes a fix for an ArrayIndexOutOfBoundsException driver bug.
Minor fixes:
- Fixed MySQL->H2 self-import searching for uppercase tables that don't exist (H2->MySQL unaffected).
- Fixed templates with names consisting of numbers not working correctly.
- Fixed an edge-case bug with imported bans having invisible staff history until the staff have joined the server for the first time after import.
- Fixed `obscure_seed` not updating correctly when `/litebans reload` is used.
- Further reduced unnecessary on-demand Mojang API requests.
- Attempted another fix for an error with unknown causes which could not be replicated.
- Fixed an error which could randomly occur on shutdown ("Interrupted during connection acquisition")
- Fixed short-format durations specified in days (e.g. "30d") not working specifically with the `expire_after` option in
Do you need help? Join our discord server for chance at FREE VIP!