LiteBans

MC Plugin LiteBans 2.15.0
A complete, modern, cross-server banning solution (Spigot, Bungee, Velocity).

Improvements:
  • Webhook routes: Added `webhooks.yml` - this configuration allows you to set webhook URLs for each type of punishment. For example, you can send silent mutes to #silent-mutes and temporary IP bans to #tempipbans.
  • Silent punishments and alts scanning (dupeip) notifications will now be broadcasted using Discord Webhooks, if configured to do so.
Fixes:
  • Fixed /lockdown error under Spigot since version 2.14 (Folia/Bungee/Velocity unaffected)
  • Fixed /lockdown using `kick_message_global` instead of `kick_message` under Bungee/Velocity for local scopes.
  • Fixed /unban returning a permission error message if the target is not currently banned and group weights are enabled.
  • Fixed exempt weights being checked for non-player non-console senders such as rcon.
  • Fixed limit parameter in history commands being ignored if a type was specified.
  • Fixed `litebans reset-database` requiring a reload or server restart if the global scope was cleared since version 2.14.
  • Fixed pinging roles in Discord embed messages. (`<@&roleID>`)
Minor improvements:
  • Improved performance of template group calculations.
  • Exempt bypass permissions will be automatically enabled when group weights are enabled, as these are only required to remove or modify punishments issued by console and are not checked when banning exempt players.
  • Added slow database detection & warnings ("Database is slow! Establishing connection took 70 seconds.")
  • Raised the default pool timeout from 25 seconds to 95 seconds. As some people are stuck with database servers that only work approximately half of the time, this will give LiteBans the time to reconnect when your server goes down for one minute every two minutes.
  • Improved message consistency: replaced instances of `$bannedPlayer`/`$mutedPlayer`/`$warnedPlayer` in messages.yml with `$playerDisplayName`. The former variables will be migrated automatically.
  • Renamed `round_down` option to `reduce_to_limit`.
  • Further simplified database error messages.
  • Added options to disable the /warn and /lockdown commands.
Minor fixes:
  • Fixed the `--` flag not working correctly in certain commands.
Improvements:
  • Added customizable Discord webhook embed messages.
  • When exempt group weights are enabled, punishments created by higher groups cannot be removed or modified by lower groups.
  • Added `litebans.notify.broadcast.<server>.<type>` permissions - this allows you to set server and/or type specific broadcasts for specific groups, and the local scope is also checked, which allows you to set up broadcasts to only display on their origin server. For more details, have a look at Notify Permissions.
  • Server switch message for banned players (proxy_switch_banned) will now send template messages instead, if applicable.
  • The /history & /staffhistory commands now support listing specific types - for example, you can now view mute history via `/history <user> mutes`.
  • Added templateName & templateStep variables to messages.yml.
Fixes:
  • Fixed a cooldown bypass exploit.
  • Fixed JSON features such as hover text not working on recent Velocity builds (#306 and above) due to upstream changes (minor version API breakage).
  • Fixed template group ladders not being able to specify messages.
  • Fixed server-scoped warnings being marked as sent if the player is online on a server the scoped warning is not applicable to while LiteBans is installed under a proxy instance.
  • Fixed `/litebans servers` command not giving any results.
  • Fixed overridden punishments showing as removed by the one who originally created the punishment instead of the one overriding it.
  • Fixed variables like playerName not working specifically in the `banned_message_base` message.
API changes:
LiteBans API version 0.5.0 has been released.
  • Added several methods for retrieving punishment data from the database by punishment ID or by UUID/IP with server scopes.
  • Added `getPlayerName(UUID)` method to retrieve the last player name for a given UUID.
Minor improvements:
  • The `bungee_switch_banned` message has been renamed & split into two messages: proxy_switch_banned & proxy_switch_tempbanned.
  • Added socket timeout error detection - this will indicate if your database stopped responding or slowed down significantly, without logging unnecessary details.
  • Warnings now require a reason to be specified, rather than being left blank when unspecified.
  • The banlist and mutelist commands will now only display active punishments by default.
  • Added $commandArgs variable for capturing what the sender originally typed ($command $commandArgs).
  • Resetting the database globally via `/litebans reset-database server:global` will now also clear login records (IP history).
  • Messages with "#$idRandom" will now display the ID in all cases.
Minor fixes:
  • Fixed numeric usernames causing templates to not work on them if the numeric named player has never joined the server before.
  • Fixed empty broadcast messages causing errors with Discord webhooks (none are blank by default).
  • Fixed `notify.muted_player_chat` option not taking effect if disabled.
  • Fixed a harmless warning message when running versions < 1.19.

2.14.1:

Fixes:
  • Fixed webhook ban embed being sent for kick broadcasts.
  • Fixed hex colors not working in certain messages (mainly ones without variables) since version 2.14.
Minor fixes:
  • Fixed a very rare Bungee error when sending messages to players that have disconnected before the message could be sent.
  • Fixed a startup error with unknown cause which could not be replicated and doesn't seem to occur for most users.
Improvements:
  • Added customizable Discord webhook embed messages.
  • When exempt group weights are enabled, punishments created by higher groups cannot be removed or modified by lower groups.
  • Added `litebans.notify.broadcast.<server>.<type>` permissions - this allows you to set server and/or type specific broadcasts for specific groups, and the local scope is also checked, which allows you to set up broadcasts to only display on their origin server. For more details, have a look at Notify Permissions.
  • Server switch message for banned players (proxy_switch_banned) will now send template messages instead, if applicable.
  • The /history & /staffhistory commands now support listing specific types - for example, you can now view mute history via `/history <user> mutes`.
  • Added templateName & templateStep variables to messages.yml.
Fixes:
  • Fixed a cooldown bypass exploit.
  • Fixed JSON features such as hover text not working on recent Velocity builds (#306 and above) due to upstream changes (minor version API breakage).
  • Fixed template group ladders not being able to specify messages.
  • Fixed server-scoped warnings being marked as sent if the player is online on a server the scoped warning is not applicable to while LiteBans is installed under a proxy instance.
  • Fixed `/litebans servers` command not giving any results.
  • Fixed overridden punishments showing as removed by the one who originally created the punishment instead of the one overriding it.
  • Fixed variables like playerName not working specifically in the `banned_message_base` message.
API changes:
LiteBans API version 0.5.0 has been released.
  • Added several methods for retrieving punishment data from the database by punishment ID or by UUID/IP with server scopes.
  • Added `getPlayerName(UUID)` method to retrieve the last player name for a given UUID.
Minor improvements:
  • The `bungee_switch_banned` message has been renamed & split into two messages: proxy_switch_banned & proxy_switch_tempbanned.
  • Added socket timeout error detection - this will indicate if your database stopped responding or slowed down significantly, without logging unnecessary details.
  • Warnings now require a reason to be specified, rather than being left blank when unspecified.
  • The banlist and mutelist commands will now only display active punishments by default.
  • Added $commandArgs variable for capturing what the sender originally typed ($command $commandArgs).
  • Resetting the database globally via `/litebans reset-database server:global` will now also clear login records (IP history).
  • Messages with "#$idRandom" will now display the ID in all cases.
Minor fixes:
  • Fixed numeric usernames causing templates to not work on them if the numeric named player has never joined the server before.
  • Fixed empty broadcast messages causing errors with Discord webhooks (none are blank by default).
  • Fixed `notify.muted_player_chat` option not taking effect if disabled.
  • Fixed a harmless warning message when running versions < 1.19.
Important changes:
  • The clearchat, mutechat, and togglechat commands have been removed due to being out of scope. If you are relying on these commands, you will need to find a chat management plugin that provides them.
Improvements:
  • Discord Webhook Support has been added. To enable, see wiki.
  • Template Groups have been added. These allow for templates to share progression with other templates using decimal weights (each template can be weighted differently). Example shown on wiki.
  • Added exempt group weight support - if you enable the new `use_group_weights` option, players with a lower group weight will be unable to punish higher groups. Currently this feature supports LuckPerms, and may support other permission systems later.
  • Added --modify flag (-m), which lets you alter the reason and/or duration of an active punishment without creating a new one! Example: `/ban --modify BannedPlayer new-ban-reason 10d`
  • Added `effective_ipban_duration` option, which is useful for dynamic IP addresses with frequent IP bans. This gives you the ability to define an upper bound, whereafter IP bans will automatically become regular account bans, no longer affecting the IP address involved.
  • The /checkban command will now automatically run `/litebans allow check` if the player was IP banned, which will indicate whether the IP-banned player can still join the server.
  • Added /mutelist command.
  • Added support for alternative hex colour format: "&#AABBCC"
  • Improved reliability of Spigot command blocking for servers running 1.19+.
  • Mutes are now also checked across other accounts with the same username, if `ban_names` is enabled.
  • When `punish_ip` is enabled, only the base permissions (e.g. `litebans.ban`) will be required to use commands, for example, /ban will no longer require `litebans.ipban`.
  • Added three new security options for restricting functions to console - prunehistory, modify, and sender_custom. `prunehistory` prevents players from using /prunehistory, `modify` prevents players from using `--modify`, and `sender_custom` prevents players from using --sender flags. Only `sender_custom` is enabled by default.
Fixes:
  • Fixed unban/unmute/unwarn-by-ID affecting the last active punishment of the targeted player instead of the specified one.
  • Fixed ServerListPlus integration not working under Velocity.
  • Fixed players that have been IP-banned and permitted to join the server via `/litebans allow`, and then muted, not being muted when they re-join the server after the mute has taken place.
  • Group limits specified as permanent will now be checked first rather than last. This allows for specific groups to have permanent limits without requiring other permissions such as `litebans.unlimited.ban`.
  • Templates will no longer be matched in commands if a punishment reason is typed before it (the template must be specified first).
Minor improvements:
  • Added `litebans.server.<server>.<type>` permissions (e.g. `litebans.server.global.ban`), which allows you to separately grant global bans and global mutes, for example.
  • Improved accuracy of `ban_names` option in config.yml when players have multiple UUIDs per username, which can happen in various rare circumstances - for example, offline-mode (Geyser) + offline-mode (Java Edition) + online-mode account would grant three separate UUIDs for the same username.
  • $id & $idRandom will no longer become hex colours when `#` is followed by a >=6 digit ID (e.g. `#$idRandom` -> `#ABC123`)
  • Added $target variable for iphistory.error_no_history message.
  • Improved performance of database queries by ensuring that more queries are cached.
Minor fixes:
  • Fixed error when using `/litebans allow` on an IP address which has never joined the server before.
  • Fixed UnsupportedOperationException errors while disconnected from database.
  • Fixed a ClassCastException when loading malformed/invalid configurations.
  • Fixed a LiteBans import error with unknown cause, likely very rare as it could not be replicated during regular testing.
2.13.1:

Improvements:
  • Discord webhook will now show silent broadcasts if punishments are silent by default.
Fixes:
  • Fixed all commands being blocked for muted players under Spigot 1.19+ since version 2.13.
  • Fixed Discord webhooks not working under Bungee/Velocity.
2.13.2:

Fixes:
  • Fixed circular dependency with AuthMe/Essentials since version 2.13 due to a fix for tab completion issue caused by Essentials.
  • Fixed a bug that caused players to sometimes receive a duplicate broadcast message since version 2.13.
  • Fixed /unmute not taking effect on online players since version 2.13. Expiration unaffected.
Minor improvements:
  • Added "user:" targeting prefix which can be used in /checkban to specify that the target is a username and not an ID when the specified target is a number that also matches the ID of an existing active punishment. Example: `/checkban user:1234`
Improvements:
  • Added Folia support - disclaimer: since Folia is a work-in-progress, things could break with future updates of Folia, but I will try my best to keep everything up to date as development progresses.
  • Added LuckPerms prefix, suffix, and exempt support for Bungee & Velocity. Variables like executorPrefix and executorSuffix from messages.yml can now be used under a proxy instance of LiteBans, and offline players will be exempt from punishments if they have the required permissions.
  • Added IP templates - any template with "ip_template: true" set in templates.yml will track each template ladder across all accounts on the same IP. All bans under an IP template will automatically become IP bans.
  • Added new variables for messages.yml - $playerBans, $playerMutes, $playerWarnings, $playerKicks. These variables allow you to indicate the total number of punishments for each type tied to the affected player.
  • Added template requirements for group limits - if you set `require_template: true` for a group, players from that group must specify a template in order to create a punishment, and will receive an error message otherwise.
Since this is group-based, you can have lower groups that are template-restricted and higher groups that can create custom punishments.
  • Updated the AdvancedBan importer for the latest release to support tempbans, IP bans, and punishment history.
Fixes:
  • Fixed Bedrock usernames starting with "*" being considered wildcard IP addresses by the new `ipban_command` security option that prevents players from placing wildcard IP bans.
  • Fixed certain randomized IDs not working correctly with /checkban, /checkmute, or /unban.
  • Fixed the new JSON features (Run Command, Open URL) requiring "litebans.json.hover_text" permission even if the message has no hover text.
  • Fixed a startup error which could rarely occur under certain conditions due to a bug in older server versions (1.7 <-> 1.10.2 affected).
API changes:
  • Added RandomID class, which allows you to convert random ID strings into numbers and vice versa.
  • Added a method to Entry which returns the random ID of the punishment.
Minor improvements:
  • Added support for viewing IP bans matching no specific account (e.g. wildcard IP bans) in /history & /staffhistory. By default, only console can view the IP addresses, and players will see ip_hidden instead of the actual IP address.
  • Added permission node `litebans.newline` for using newlines ("\n") in punishment reasons.
  • Small performance improvements for some commands (/kick, /dupeip, /history, /staffhistory, /checkban, and more).
  • The "-g" flag (shortcut for "server:*") now works with all commands that accept server scopes.
Minor fixes:
  • Fixed variables such as totalBans not working in /banlist (not configured by default).
  • Fixed custom command senders having unbans/unmutes not showing up in /history, and fixed them not being targetable in other commands such as /staffhistory or /staffrollback.
  • Fixed server UUIDs being generated twice when server.yml has been created for the first time. This has no major side effects.

2.12.1:

Fixes:
  • Fixed playerPrefix/playerSuffix not working under Bungee & Velocity.
  • Fixed AdvancedBan importer converting temporary bans into permanent bans.

2.12.2:

Improvements:
  • Added support for running template actions as the server console. These actions will automatically be displayed as if they are being run by the player who issued the original template punishment, but this can be overridden if necessary.
  • Cleared the default global warning actions in config.yml, as they cause confusion for those setting up warning templates for the first time.
Fixes:
  • Fixed playerPrefix/playerSuffix only working when the targeted player is offline in specific messages.
  • Fixed suffixes (playerSuffix/executorSuffix) fetching prefixes.
  • Fixed a bug which could make it more difficult to ban specific players since version 2.12.

2.12.3:

Improvements:
  • Added Minecraft 1.20 support.
  • Expanded template requirements support (require_template) to warnings & kicks.
Fixes:
  • Fixed the "-g" flag not working in certain commands since version 2.12.
Minor improvements:
  • Added player variables (e.g. `playerPrefix`) to previous_ban_removed/previous_mute_removed/kick exempt messages.

2.12.4:

Improvements:
  • Added support for hex colors in disconnect messages when kicking from Bungee using LiteBans on the backend servers. (Upstream support pending now included in Bungee build #1711)
Fixes:
  • Fixed errors under 1.20 Paper builds.
2.12.5:

Fixes:
  • Fixed kick command requiring a reason to work, and fixed ban usage message being sent instead of kick usage since version 2.12.
  • Fixed timestamp conversion error with MySQL->H2 and MySQL->MySQL LiteBans imports.
Minor improvements:
  • The command `/litebans reset-database` will now quote the server scope initially used rather than stating `server:global` for the confirmation example command.
  • Console name will be limited to 16 characters instead of logging an error message when it is above 16 characters.
Improvements:
  • Added Folia support - disclaimer: since Folia is a work-in-progress, things could break with future updates of Folia, but I will try my best to keep everything up to date as development progresses.
  • Added LuckPerms prefix, suffix, and exempt support for Bungee & Velocity. Variables like executorPrefix and executorSuffix from messages.yml can now be used under a proxy instance of LiteBans, and offline players will be exempt from punishments if they have the required permissions.
  • Added IP templates - any template with "ip_template: true" set in templates.yml will track each template ladder across all accounts on the same IP. All bans under an IP template will automatically become IP bans.
  • Added new variables for messages.yml - $playerBans, $playerMutes, $playerWarnings, $playerKicks. These variables allow you to indicate the total number of punishments for each type tied to the affected player.
  • Added template requirements for group limits - if you set `require_template: true` for a group, players from that group must specify a template in order to create a punishment, and will receive an error message otherwise.
Since this is group-based, you can have lower groups that are template-restricted and higher groups that can create custom punishments.
  • Updated the AdvancedBan importer for the latest release to support tempbans, IP bans, and punishment history.
Fixes:
  • Fixed Bedrock usernames starting with "*" being considered wildcard IP addresses by the new `ipban_command` security option that prevents players from placing wildcard IP bans.
  • Fixed certain randomized IDs not working correctly with /checkban, /checkmute, or /unban.
  • Fixed the new JSON features (Run Command, Open URL) requiring "litebans.json.hover_text" permission even if the message has no hover text.
  • Fixed a startup error which could rarely occur under certain conditions due to a bug in older server versions (1.7 <-> 1.10.2 affected).
API changes:
  • Added RandomID class, which allows you to convert random ID strings into numbers and vice versa.
  • Added a method to Entry which returns the random ID of the punishment.
Minor improvements:
  • Added support for viewing IP bans matching no specific account (e.g. wildcard IP bans) in /history & /staffhistory. By default, only console can view the IP addresses, and players will see ip_hidden instead of the actual IP address.
  • Added permission node `litebans.newline` for using newlines ("\n") in punishment reasons.
  • Small performance improvements for some commands (/kick, /dupeip, /history, /staffhistory, /checkban, and more).
  • The "-g" flag (shortcut for "server:*") now works with all commands that accept server scopes.
Minor fixes:
  • Fixed variables such as totalBans not working in /banlist (not configured by default).
  • Fixed custom command senders having unbans/unmutes not showing up in /history, and fixed them not being targetable in other commands such as /staffhistory or /staffrollback.
  • Fixed server UUIDs being generated twice when server.yml has been created for the first time. This has no major side effects.

2.12.1:

Fixes:
  • Fixed playerPrefix/playerSuffix not working under Bungee & Velocity.
  • Fixed AdvancedBan importer converting temporary bans into permanent bans.

2.12.2:

Improvements:
  • Added support for running template actions as the server console. These actions will automatically be displayed as if they are being run by the player who issued the original template punishment, but this can be overridden if necessary.
  • Cleared the default global warning actions in config.yml, as they cause confusion for those setting up warning templates for the first time.
Fixes:
  • Fixed playerPrefix/playerSuffix only working when the targeted player is offline in specific messages.
  • Fixed suffixes (playerSuffix/executorSuffix) fetching prefixes.
  • Fixed a bug which could make it more difficult to ban specific players since version 2.12.
Fixed issue with authentication on load - first phase
idRandom.jpg


Improvements:
  • 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.
Fixes:
  • 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 improvements:
  • 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.
Minor fixes:
  • 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.

2.11.1:

Fixes:
  • Fixed kicks matching `ignored_kick_messages` not being processed correctly (kick was broadcasted, and not added to database, but player wasn't kicked).
API changes:
  • Fixed punishment IDs being set to -1 on the event API. Entries in-database unaffected.

2.11.2:

Improvements:
  • 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.
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.
Minor fixes:
  • 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 config.yml. Long format is used by default ("7 days").

2.11.3:

Fixes:
  • Fixed GeoIP checksum error with new configurations.
  • Fixed GeoIP failing to initialize if the database file (GeoLite2-Country.mmdb) was downloaded manually.
  • Fixed templates being suggested in tab complete results for /unban, /unmute, and /unwarn.
  • Fixed randomized IDs being initialized on startup instead of on-demand since version 2.11.2.
idRandom.jpg


Improvements:
  • 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.
Fixes:
  • 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 improvements:
  • 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.
Minor fixes:
  • 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.
2.11.1:

Fixes:
  • Fixed kicks matching `ignored_kick_messages` not being processed correctly (kick was broadcasted, and not added to database, but player wasn't kicked).
API changes:
  • Fixed punishment IDs being set to -1 on the event API. Entries in-database unaffected.
idRandom.jpg


Improvements:
  • 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.
Fixes:
  • 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 improvements:
  • 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.
Minor fixes:
  • 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.
Top Bottom