Skip to content

Release 1.28.2

Choose a tag to compare

@tastybento tastybento released this 13 Jun 17:16
aa54c61

Release Highlights

  • πŸ”Ίβš™οΈ Per-dimension limits β€” Block counts, entity counts, limits, and offsets are now tracked independently for the overworld, nether, and end, fixing the long-standing bug where nether/end counts reset to zero on chunk unload (#43).
  • πŸ› Accurate counting β€” Fixes for double-counted beds/doors, golem/snowman block removal, several entity-counting bugs, and count leaks during recount.
  • πŸ”‘ MiniMessage locales β€” All bundled locale files have been converted from legacy & colour codes to MiniMessage, and missing translation keys were synced across all languages.
  • 🩹 Older-server compatibility β€” Resolves a crash on Minecraft versions earlier than 1.21.9 caused by referencing copper blocks that did not yet exist.

Compatibility

βœ”οΈ BentoBox API 2.7.1
βœ”οΈ Minecraft 1.21.5 – 26.1.2
βœ”οΈ Java 21

Upgrading

  1. As always, take backups just in case. (Make a copy of everything!)
  2. Stop the server.
  3. Replace the Limits jar with this one.
  4. Restart the server.
  5. You should be good to go!

πŸ”Ί Data migration: Limits now stores counts and limits per dimension. On first load, your existing single-dimension data is migrated automatically into the overworld slot β€” no action is required, but the on-disk format changes, so a backup before upgrading is strongly recommended. Downgrading after the upgrade is not supported.

βš™οΈ New config sections: A single blocklimits value now applies independently to each dimension (e.g. HOPPER: 10 allows 10 in the overworld, 10 in the nether, and 10 in the end). Optional blocklimits-nether and blocklimits-end sections let you override a single dimension. These are added commented-out in the default config; existing configs keep working unchanged.

πŸ”Ί Per-dimension permissions: In addition to the existing <gamemode>.island.limit.<KEY>.<NUMBER> (applied to all dimensions), you can now scope a limit to one dimension with <gamemode>.island.limit.<overworld|nether|end>.<KEY>.<NUMBER>.

πŸ”‘ Locale note: The bundled locale files now use MiniMessage formatting (<red>, <green>, …) instead of legacy & codes. If you have customised any Limits locale strings, review them against the new files. Translations were also resynced and may need regenerating.

Legend

  • πŸ”‘ locale files may need to be regenerated or updated.
  • βš™οΈ config options have been removed, renamed, or added.
  • πŸ”Ί special attention needed.

New Features

πŸ”Ίβš™οΈ Per-dimension block and entity limits

[PR #261]

Block counts, entity counts, limits, and offsets are now keyed by World.Environment, so the overworld, nether, and end are each tracked and limited independently. This fixes #43, where nether and end counts dropped to zero whenever their chunks unloaded. A single config-defined limit applies to each dimension separately, new blocklimits-nether / blocklimits-end sections allow per-dimension overrides, and a new 6-segment permission format lets you grant limits for one dimension. Existing per-island data is migrated into the overworld dimension on first load.

Bug Fixes

πŸ› Block count leaks and recount accuracy

[PR #264]

Fixes several cases where block counts could drift over time, and parallelises recount chunk loading so the calc command completes faster.

πŸ› Multi-block placements counted once

[PR #265]

Beds, doors, and other multi-block structures were being counted twice on placement. Fixes #86.

πŸ› Golem and snowman block removal

[PR #266]

Block removal for golems and snowmen is now anchored on the pumpkin rather than the spawn block, so the correct blocks are decremented. Fixes #127.

πŸ› Entity counting fixes

[PR #267]

Resolves three entity-counting bugs in the entity limit listener.

πŸ› Spawn eggs no longer consumed at the limit

[PR #268]

When a player is at the entity limit, spawn-egg use is now denied before the egg is consumed, so the item is kept. Fixes #134.

🩹 Copper-material crash on older servers

Limits referenced 1.21.9 copper blocks (copper torches, copper chests) directly, which crashed with a NoSuchFieldError on servers running Minecraft 1.21.8 or earlier. These materials are now resolved by name, so the same jar runs on both older and newer servers.

Other Improvements

  • πŸ”‘ Locale keys synced across all 21 languages and converted to MiniMessage formatting.
  • 🧹 Extensive SonarCloud-driven cleanup of main and test code (cognitive complexity, duplicated literals, deprecated API usage, unused code).
  • πŸ”§ MockBukkit pinned to Maven Central 4.110.0; Modrinth game-versions updated to the current Minecraft range.

What's Changed

  • πŸ”Ίβš™οΈ Separate block and entity limits per dimension (fixes #43) by @tastybento in #261
  • Update Modrinth game-versions to current MC range by @tastybento in #262
  • πŸ› Fix block count leaks and parallelize recount chunk loading by @tastybento in #264
  • πŸ› Count multi-block placements (beds, doors) once, not twice (#86) by @tastybento in #265
  • πŸ› Anchor golem/snowman block removal on the pumpkin, not the spawn block (#127) by @tastybento in #266
  • πŸ› Fix three entity counting bugs in EntityLimitListener by @daniel-skopek in #267
  • πŸ› Deny spawn-egg use before consumption when at the entity limit (#134) by @tastybento in #268
  • 🩹 Resolve 1.21.9 copper materials by name to support older servers by @tastybento in #269
  • 🧹 Address SonarCloud issues across main and test sources by @tastybento in #269
  • πŸ”‘ Sync locale keys and convert colour codes to MiniMessage by @tastybento in #269

New Contributors

Full Changelog: 1.28.1...1.28.2