Skip to content

Releases: A248/LibertyBans

No to bugs, Yes to internationalism

12 Sep 09:24
1.1.2
26eb9b6

Choose a tag to compare

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

04 Jul 12:23
1.1.1
cfaf269

Choose a tag to compare

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

05 Apr 04:56
fd81c54

Choose a tag to compare

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

30 Mar 06:01
c3ae510

Choose a tag to compare

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

29 Feb 22:04
3994fd2

Choose a tag to compare

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?

12 Sep 04:03
4e24341

Choose a tag to compare

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

09 Jul 16:46
d3deb26

Choose a tag to compare

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

19 Mar 18:21
b52143f

Choose a tag to compare

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)

Making a Banlist and Checking It Twice

26 Dec 03:48
04d951f

Choose a tag to compare

Welcome and Merry Christmas. This special and wonderful update constitutes a Christmas present. We bring you new APIs, the highly-demanded exemption feature, and automatic Geyser/Floodgate detection.

However, because it is Christmas, you have to be nice! So, you need to read the new requirements for LibertyBans 1.1.0 before installing it. If you're naughty, you install plugins without reading their documentation.

Please read the page on updating from 1.0.x to 1.1.0

This release, 1.1.0-M1, is a "milestone" release, meaning it contains many features intended for 1.1.0. However, the new features in 1.1.0-M1 are officially unstable and may be subject to change. All feature and API additions become officially stabilized in 1.1.0. This is in accordance with semver.

The Gifts of this Release

Bug-fixes:

  • Running a list command, such as /history, with a page argument of 0 caused an exception (e986571)
  • Properly document behavior of STRICT address-strictness and add setting for STERN (#187)
  • Wait for database threads to fully shut down (#189)

Improvements:

  • Automatically determine Geyser/Floodgate prefix (#43)
  • Implement exemption using LuckPerms and Vault. Be sure to thank @BlueTree242 for providing creative suggestions, such as using LuckPerms weights, to support exemption. We are indebted to this user's inspiration (#131)
  • Use newer dependencies; requires MariaDB 10.6 (9ec5061)
  • Updates to selection API:
    • Select punishments before given time thanks to @FreakyRed (#179)
    • Select number of punishments and filter by victim type (#158 and ece3120)

Other:

Roadmap to 1.1.0

Looking forward, we have:

  • 1.1.0-M1, this release.
  • 1.1.0-M2, coming 17 January.
  • Potentially other milestone releases.
  • 1.1.0 itself.

The page on Upgrading from 1.0.x to 1.1.0 will continue to receive updates as we progress through the completion of version 1.1.0. The full changelog is also available.

Github "milestones", not to be confused with "milestone" releases, provide a rough outline of the plan to complete each feature. Note that milestones are used flexibly, strictly for convenience of planning. Placement on a milestone is no guarantee of a feature's completion.

Please remember that we follow no timelines as this is a free software project maintained primarily by a single obsessively-academic college student. It is an intellectual exercise, however, to deliver the highest quality of features with ambition, creativity, and tact as we aim to surpass all other punishment plugins.

Merry Christmas

Sponge Platform + Relocation Immunity

12 Sep 02:25
1bb16c5

Choose a tag to compare

Hereafter, LibertyBans supports the Sponge platform, API versions 8 and above. This development, we hope, will extend the usability of LibertyBans. Deployable in many varieties of environments yet utilizing common code, LibertyBans has always been designed to support multiple platforms. The Sponge API is the natural continuation of this impetus.

Moreover, we have solved, by a clever exploit, the longstanding issue which made LibertyBans vulnerable to bugs in other plugins. Specifically, unrelocated libraries in other plugins will no longer affect LibertyBans. We will continue to recommend you to fix these bugs, because your server's stability is our concern too. However, LibertyBans will be able to proceed despite these situations.

Bugs fixed:

  • Fixed an embarrasing bug which caused importing from BanManager to be impossible, since /libertybans import banmanager was not recognized (0d43698)
  • Updated database revision per previous change in 1.0.3 (cca6ef9)

Feature additions:

  • Sponge support. API 8 and API 9 are supported (#99)
  • The checkuser addon provides the /checkuser command, thanks to @SnakeAmazing . This addon displays whether a user has an applicable ban or mute (#168)
  • The LibertyBans/internal/attachments folder allows attaching driver jars, which is useful for importing from LiteBans H2 (0d43698)

Other:

  • Protect classloading from unrelocated libraries, by filtering classes requested in parent classloader (c041502)
  • The hypersql/ and libraries/ folders are moved under LibertyBans/internal. Existing directories will be migrated automatically (d6c7c21)