Tags
Creators
Details
1.28.2
Compatibility
Changes
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
- As always, take backups just in case. (Make a copy of everything!)
- Stop the server.
- Replace the Limits jar with this one.
- Restart the server.
- 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
blocklimitsvalue now applies independently to each dimension (e.g.HOPPER: 10allows 10 in the overworld, 10 in the nether, and 10 in the end). Optionalblocklimits-netherandblocklimits-endsections 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 https://github.com/BentoBoxWorld/Limits/pull/261
- Update Modrinth game-versions to current MC range by @tastybento in https://github.com/BentoBoxWorld/Limits/pull/262
- ๐ Fix block count leaks and parallelize recount chunk loading by @tastybento in https://github.com/BentoBoxWorld/Limits/pull/264
- ๐ Count multi-block placements (beds, doors) once, not twice (#86) by @tastybento in https://github.com/BentoBoxWorld/Limits/pull/265
- ๐ Anchor golem/snowman block removal on the pumpkin, not the spawn block (#127) by @tastybento in https://github.com/BentoBoxWorld/Limits/pull/266
- ๐ Fix three entity counting bugs in EntityLimitListener by @daniel-skopek in https://github.com/BentoBoxWorld/Limits/pull/267
- ๐ Deny spawn-egg use before consumption when at the entity limit (#134) by @tastybento in https://github.com/BentoBoxWorld/Limits/pull/268
- ๐ฉน Resolve 1.21.9 copper materials by name to support older servers by @tastybento in https://github.com/BentoBoxWorld/Limits/pull/269
- ๐งน Address SonarCloud issues across main and test sources by @tastybento in https://github.com/BentoBoxWorld/Limits/pull/269
- ๐ก Sync locale keys and convert colour codes to MiniMessage by @tastybento in https://github.com/BentoBoxWorld/Limits/pull/269
New Contributors
- @daniel-skopek made their first contribution in https://github.com/BentoBoxWorld/Limits/pull/267
Full Changelog: https://github.com/BentoBoxWorld/Limits/compare/1.28.1...1.28.2
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:M9ms3AD8:lMygsHw4"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:M9ms3AD8:lMygsHw4"
}

