Skip to content

Releases: A248/LibertyBans

Six Years of Unending Disciplinary Freedom

Choose a tag to compare

@A248 A248 released this 04 Jul 23:21
1.1.4
0750fc8

This release marks the six-year anniversary of LibertyBans. Since then, 66 users have reported bugs or contributed changes to the LibertyBans codebase. It also delivers much-awaited support for Paper 26.2, due to API changes in this version.

This release does not bring any new features. Instead, it focuses on Paper platform support. This should be understood as a continuation of the LibertyBans legacy and strategy, which has always sought stability and honest progress over shiny but reckless development. Since the last update, many internal updates took place, so please report any stability concerns or bugs if they arise. If three people report bugs, we can record 60 bugs on the issue tracker in the project's lifetime.

Bugs fixed:

  • Removed stray log message (e6621da)

Improvements:

  • Added compatibility with Paper 26.2 (#356)

Happy disciplining.

Ides of June Release

Choose a tag to compare

@A248 A248 released this 16 Jun 13:46
1.1.3
1ee1124

Here arrives a new release full of software tricks and features to make your brain tingle. Yes, there were more bugs. Yes, they were solved. There's something in this release for everyone, whether functional or linguistic or formatting-related.

Beside delivering many bug fixes and features, this release improves applicability query performance for everyone. Applicability queries are the backbone of LibertyBans, powering ban and mute checking when players connect or chat, so their performance matters. The biggest improvements were observed for cracked networks that use custom alts-registry settings. Relatedly, the documentation now describes expected database performance for different address strictness levels, based on real tests against supported databases.

Bugs fixed:

  • Fixed /history breaking when key-based pagination and show-for-applicable-for-history were combined (#338)
  • Solved poor alt detection query performance by adding more indexes (#349)
  • Accept non-ASCII usernames used by China Edition and mods (#347)

New features:

  • Change the reason of an existing punishment, via addon (#277)
  • Added the %SILENCE% variable for punishment notifications (#210)
  • Eloquent, conversational Turkish translation by @gbpii (#353)
  • Allow command aliases to use different target label, for example ban-ip:ipban turns /ban-ip into a usable alias (4f72dc2 and #301)

Improvements:

  • Enhanced performance for all applicability queries, affecting logins and mute checking, plus documentation (a85dfae)
  • Allow colors in punishment-expired-display (#228)
  • Updated Chinese documentation for change reason addon by @JerryHan3 (#355)
  • Print warning message if command conflicts are detected. This should help reduce the support burden due to Essentials registering ban commands (26613ef)

Other:

  • Prepare to support longer server scopes. This commit is specific to the 1.1.x release track (dda6e8a)
  • Upgraded dependencies and some of the build process (e3c750e, 9c58c7e, and 57256cc)
  • Log full set of missing database grants when insufficient privileges are detected (712f8da)

Note: This release was built from the source branch 1.1.x-maintenance, not the master branch. If you are wondering why the release is now and not on July 4, it is because I have other plans, hopefully.

No to bugs, Yes to internationalism

Choose a tag to compare

@A248 A248 released this 12 Sep 09:24
1.1.2
26eb9b6

LibertyBans is all about the freedom of serving justice and deserved punishments. With that in mind, we have cracked down on several bugs in this release. These bugs were naughty and decided to form a conspiracy, whereby they all appeared within the span of a month. Fortunately, the bug uprising was crushed in its tracks.

Additionally, you can now log your punishments to a webhook, such as Discord, with full customizability of the webhook JSON. Many of you wanted this feature.

Lastly but definitely not leastly, the documentation at https://docs.libertybans.org has been translated to Chinese. This will improve accessibility for those of us who speak other languages.

Bugs fixed:

  • Reduce overly-draconian enforcement of scope-based punishments. The bug caused too many players to be kicked in some cases. (e2bd2be)
  • Restore compatibility with LeafMC, a Paper fork, reported by @EmrAYD (#323)
  • When importing from vanilla, allow weird input data like IP addresses with ports, reported by Mitadare on Discord (be303b8)

New features:

  • Add a webhook addon, usable with Discord and other services (#299)

Improvements:

Other:

  • Removed Flyway upgrade message, a warning message that had existed for a long time (#262)

You can now view the Chinese language documentation on the website, https://docs.libertybans.org . If you're a bilingual speaker reading this, please feel free to spread the news in your relevant forums or social media spheres.

Five-Year Anniversary Release

Choose a tag to compare

@A248 A248 released this 04 Jul 12:23
1.1.1
cfaf269

Five years since the first launch of LibertyBans, and while the Glorious United States of A is falling apart, we bring you a release that is sure to improve the management of crackdowns and political repression on your favorite Minecraft server.

In this release, the /alts and /accounthistory commands are paginated. Not only that, pagination is improved for existing commands like /banlist, /mutelist, and /history. This pagination system now allows you to use %NEXTPAGE_KEY% and %LASTPAGE_KEY%, which are codes designed to be used with clickable text. Existing users are encouraged to update their configurations to use these variables, as they make pagination more efficient. Traditional pagination is still supported, but it may slow down if you reach very large pages (like 60 or 100 pages).

Additionally, addon management is much smoother. You no longer have to manuallly update addon jars in addition to the main plugin jar. Instead, LibertyBans updates addon jars automatically, provided the filename matches. You can also install new addons by using /libertybans addon install <id>, and restart the server afterward.

Bug fixes:

  • Allow /alts command to be paginated, preventing kicks due to chat message overflow (#279)
  • Fix standalone instance not accepting commands (4ba856d)
  • Fix a mistake in the default language files (29770b3)

New features:

  • New Japanese translation thanks to @NamiUni (#309 and #311)
  • Added a permission to bypass auto-checking of alts on join (#118)
  • Allow skipping IP address registration for some backend servers, letting cracked networks prevent unauthenticated users from logging IP address history (#194)
  • Option to enable "random IDs"; for example, IDs will look like F054E, 4D889, 8A23F instead of 22, 23, 24. This setting works automatically everywhere that IDs are used; it's fully transparent and can be disabled at any time, since random IDs are not stored in the database (#204)

Improvements:

  • Smoother addon management. Includes automatic updating of old addons, plus /libertybans addon install <addon> to install new ones (#236)
  • Better pagination for list commands like /banlist and /history, and added pagination for /alts and /accounthistory (#191, #279, and 56c836a)
  • Updated documentation in many areas (#159, #239, #246, #295)

Other:

  • Protect against 'zip file closed' coming from other plugins (248a425)
  • Run SHUTDOWN COMPACT on local HSQLDB databases, at least once every 30 days. This helps reduce database fragmentation and storage costs (effbcb3)

May the Release Be With You

Choose a tag to compare

@A248 A248 released this 05 Apr 04:56
fd81c54

The moment you have been waiting for has finally arrived. This release crystallizes LibertyBans 1.1.0, finalizing its API, and crowning a train of releases that began over two years ago. The community of users and contributors that have brought us to this point is indescribable, and I would like to take a moment to thank everyone who's ever contributed to LibertyBans -- whether through bug reports, maintenance, feature additions, or just ideas and feature requests. Community support, feedback, and social development are the lifeblood of a free software project, and LibertyBans is and will always remain a free software project.

There are no breaking changes in this release compared to previous release candidates (1.1.0-RC3, 1.1.0-RC2, 1.1.0-RC1). However, if you are upgrading from 1.0.x, please read the relevant guide for compatibility considerations.

Improvements:

  • The plugin can now run on Sponge API 12 and 13, while API 8 and 9 are still supported. Thanks to Mups for raising this as an issue and helping investigate the details (#297)
  • The plugin jar doubles as a standalone application, which can be run easily with java -jar LibertyBans_Release-1.1.0.jar and no further complications. Typing "stop" will stop the program; other text will be sent as console commands. The standalone instance is a testament to software artistry, and it has uses too. It can be helpful, for example, to edit the contents of a LibertyBans database without starting up a full Minecraft server (101ea56)

Other:

  • LibertyBans now requires JDK 21 at build time, which is relevant for contributors to the codebase. Runtime and API requirements have not changed (101ea56)

For the astute reader; yes, I accidentally thought it was May.

The Final Countdown

Choose a tag to compare

@A248 A248 released this 30 Mar 06:01
c3ae510

This is a stabilization release designed to prepare the final launch of 1.1.0. Between this release and 1.1.0, if there are no major bugs discovered, 1.1.0 will be unveiled on the sole basis of this release.

There are no breaking changes in this release compared to 1.1.0-RC2. However, if you are upgrading from 1.0.x, please read the relevant guide for compatibility considerations.

Fixes:

  • Re-solved detection of plugin messaging channel, which was accidentally broken in 1.1.0-RC1 (dc18139)
  • No-pages message was not being shown with empty data reported by Nik2810 (09c9ffe)
  • Fix double-prefix on sending alts notification reported by fuzz (f0dfc41)
  • Inaccurate database requirement check reported and fixed by @kronnox (#290 and #291)
  • Compatibility with Velocity-CTD thanks to @R00tB33rMan and I apologize for the delay (#275)

Improvements:

  • Reverse the direction of self-importing, letting people "export" their data (32b1fc1)
  • Chinese translation update by @SeemWind (#268)

Other:

  • Miscellanous codebase improvements like build updates, comment corrections, and database coverage (de25d2d, 3d87760, 500ef0d)
  • Add PluginIdentifiableCommand marker interface (b81f632)

This release comes after admittedly the longest hiatus in LibertyBans' release history, but I hope this is as much as a tribute to software maturity as it is a sign of my exhaustion in other areas of life. Alas I do not know what is the state of our community these days, but I hope everyone is doing well, and for sure, there are still many features left to implement. I'm looking forward to polishing alt detection pagination in the coming days, and we will aim to release 1.1.0 on April 1 or April 4.

If you're reading this, please install the plugin and let me know how you like and enjoy it. On the bright side, we reached 450 commits ;)

A Modest Leap Forward

Choose a tag to compare

@A248 A248 released this 29 Feb 22:04
3994fd2

This Leap Day release brings additional stabilization to the 1.1.0 series. Mostly, this consists of solving a few edge cases, making LibertyBans more correct, more accurate, and closer to perfection. We also have a few new features and improvements.

There are no breaking changes in this release compared to 1.1.0-RC1. However, if you are upgrading from 1.0.x, please read the relevant guide for compatibility considerations.

Bug-fixes:

  • Use serializable isolation to fully handle overlapping punishment commands (b10c847)
  • Smoothly transition the mute cache across usage of /libertybans restart (9cb950b)
  • Detecting the plugin messaging channel no longer emits false warnings (2985be9)

New features:

  • Fantastic Polish translation by @szyha (#242)
  • The exemption addon based on LuckPerms weights can now be configured to exempt targets with the same weight as the operator (#249)

Improvements:

  • Resolve literal UUID arguments in more places (063de6c)
  • Include sub-commands like version, usage, and help in tab-completion (063de6c)

Other:

Closer to 1.1.0: Are we there yet?

Choose a tag to compare

@A248 A248 released this 12 Sep 04:03
4e24341

Having accomplished a slew of exciting new features, this release prepares the way for the impending LibertyBans 1.1.0. The progress made since 1.0.x, in the form of 1.1.0-M1, 1.1.0-M2, and 1.1.0-M3 now enters the release candidate phase.

I would like to thank everyone who tested the layouts feature while it was in development builds. I don't remember who everyone is, but please feel free to remind me if you don't see yourself inside /libertybans about.

There are no breaking changes in this release compared to 1.1.0-M3. However, if you are upgrading from 1.0.x, please read the relevant guide for compatibility considerations.

Bug-fixes:

  • UUID mismatch on Sponge when player info forwarding is configured (#229))
  • The 'show-applicable-for-history' turned /warns into /history (fb14929)
  • Folia-specific deadlock on tab completion (#224)

New features:

  • Punishment layouts, based on a tiered system of escalation. Also known variously as templates, stacked punishments, escalation tracks, etc. (#180)
  • Kick player via plugin messaging (f7d228d and 235dace)
  • Scoped punishments applicable to a configured server or group of servers (#146)

API improvements:

  • Add method to get back a builder from a draft punishment by @mcmdev and @KoxSosen (#211)
  • API for alt detection and management (fdf46d9)
  • Allow retrieving player name from PostPunishEvent and PostPardonEvent (#76)
  • Complete API for server scopes (#146)

Other:

  • Create a standalone implementation, currently intended for zxfq's web panel (ed6215b)
  • Faster unmute resolution when synchronizing across instances (19a6494)
  • Add warning to Sponge if newer listener registration API unavailable (19a6494)
  • Initialize the H2 driver if possible; improve driver initialization generally (fb14929)

In 1.1.0, all API additions since 1.0.x will become enshrined in our semantic versioning guarantee, a basic requirement for a stable API not provided by competing punishment plugins. This release candidate (RC) serves the purpose of easing the rollout of 1.1.0 in a gradual, stable fashion. Remember, our Versioning and Support Policy means that anyone, from individual servers to large networks running multiple instances, can enjoy the stability of a LibertyBans release and rest assured that they will receive critical bug-fixes.

A Release of Relief

Choose a tag to compare

@A248 A248 released this 09 Jul 16:46
d3deb26

With this release comes compatibility improvements and bug-fixes for the most recent Minecraft versions. LibertyBans is now guaranteed to work on 1.20 and 1.20.1 despite changes to server libraries and Paper APIs.

It is again possible to run LibertyBans on the older MariaDB versions 10.3, 10.4, and 10.5. Many users shared hosts' do not yet provide newer MariaDB versions. However, we nonetheless strongly encourage users to pressure hosts to update their database servers. Operating a more recent database will make your server run smoother and be more responsive to gameplay. It will also enable plugin developers to write code more effectively -- and better code means fewer bugs, sleeker design, and high-quality features.

There are no breaking changes in this release compared to 1.1.0-M2. However, if you are upgrading from 1.0.x, please read the relevant guide for compatibility considerations.

Bug-fixes:

  • Compatibility with Spigot/Paper 1.20's library changes (#215)
  • Add Paper 1.20.1 support due to Folia API transplant (#219)
  • Avoid printing warning message on newer Velocity versions due to added library (#214)
  • Redeclare API methods to preserve binary compatibility (#207)

New features:

  • Add shortcut-reasons addon (#124)
  • Support MariaDB 10.3-10.5 by rewriting queries (4a5a095)
  • Ban Bedrock users even when Floodgate isn't installed, by overriding prefix detection (#195)

API improvements:

  • Add DraftPunishment setter to PunishEvent. Enables modifying the reason and other details when a new punishment is created, as in the shortcut-reasons addon (#212)

Other:

  • Add Folia support (#206)

Attentive users will observe that I (A248) have returned from a personal hiatus due to travel purposes. However, I am very grateful to Simon, LibertyBans' co-maintainer, for providing hot-fixes and development builds when newer Spigot and Paper versions broke LibertyBans. Thanks to Simon, and also @potatoru for contributing a PR, the bugs were quashed within a couple weeks, at least in development builds. All praise and well-being due to whichever deity you worship, we have now reached a stable release wherein the compatibility bugs are eradicated for good. Therefore I am happy, and relieved, to present this release to you.

St. Patrick's Day Release: 400 commits, 100 stars

Choose a tag to compare

@A248 A248 released this 19 Mar 18:21
b52143f

With this release, LibertyBans reaches the 400th commit and the 100th star, milestones of development and beacons of progress. Since the last release, a slew of features have arrived to LibertyBans, enabled by our magnificent addon system. In recent months a competitor has decided to add a partially-implemented importing feature from LibertyBans -- scandal! -- so the race is on. We intend to ride ahead on a powerful engine of free software fueled by a relentlessly organized codebase.

There are no breaking changes in this release compared to 1.1.0-M1. However, if you are upgrading from 1.0.x, please read the relevant guide for compatibility considerations.

Bug-fixes:

  • Correctly catch all invalid durations. Some edge-cases resulted in a permanent punishment being specified (9fc7335)

New features:

  • Extend the duration of a punishment with /libertybans extend (#115)
  • Show applicable punishments in history if configured (#157)
  • Censor IP addresses in punishment messages for users without a certain permission (#101)
  • Expunge (purge) a punishment so that it is fully erased from history (#119)

API improvements:

  • Dramatically expanded the selection API to allow retrieving applicable punishments, using the same base interface as for selecting punishments for a set of victims (#162)
  • Modify punishment end date, reason, and scope (#115)
  • Expunge a punishment using the API (e93b317)

Other:

  • Document query performance especially with respect to HSQLDB and scalability (#190)
  • Improve documentation on address strictness and behavior (#192)
  • Support symbolically linking the hypersql database folder (c89d921)
  • Add more tests, and update documentation on exemption (9dcf429)