Releases: BentoBoxWorld/Biomes
Release 2.3.0
Release Highlights
- 🔡 MiniMessage formatting migration — All 23 locale files, panel YAMLs, and hardcoded Java strings have been converted from legacy
&-style color codes to MiniMessage tags. 14 new translations added (cs, de, hr, hu, id, it, ko, pt, pt-BR, ro, ru, tr, vi, zh-HK). - ⚙️ Ocean biome preservation — New
change-ocean-biomesconfig option (default:false) prevents biome changes from overwriting ocean biomes, keeping your island shorelines and underwater areas intact. - 🔡 Overhauled biomes template — 44 biomes with rebalanced costs, 9 new biomes (Mangrove Swamp, Pale Garden, Bamboo Jungle, and more), 3 starter bundles, PER_USAGE cost showcases, and improved descriptions.
- COMMAND panel action type — Panel buttons can now execute commands via a new
COMMANDaction type in YAML templates, enabling custom navigation and integrations. - Gamemode-aware unlock notifications — Biome unlock messages are now context-sensitive: clickable prompts in the correct gamemode world, informational messages elsewhere.
- Auto-import default biomes — When no biomes are configured for a gamemode, the addon now automatically imports from
biomesTemplate.ymlon startup. - Biome queue cancellation on island delete/reset — Queued and in-progress biome update tasks are now cancelled when an island is deleted or reset, preventing orphaned changes.
Compatibility
✔️ BentoBox 3.14.0+
✔️ Paper Minecraft 1.21.x
✔️ Java 21
Upgrading
- As always, take backups just in case. (Make a copy of everything!)
- Stop the server.
- Replace the old Biomes jar with this one in
plugins/BentoBox/addons/. - Restart the server.
- If you want the new biomes template, delete your existing biome data and let the addon auto-import, or run
/bsbadmin biomes import. - Review
config.ymlfor the newchange-ocean-biomesoption. - You should be good to go!
🔡 Locale note: All locale files have been migrated to MiniMessage format. If you have customized locale files, you will need to update them. Delete your custom locale files to get the new defaults, or manually convert your
&-style codes to MiniMessage tags (e.g.,&c→<red>,&l→<bold>).
⚙️ Config note: A new
change-ocean-biomesoption has been added toconfig.yml(defaults tofalse). With this default, ocean biome blocks are preserved during biome changes. Set totrueto restore the previous behavior where all blocks are changed.
🔺 Breaking change: This release requires BentoBox 3.14.0+ and Paper (Spigot is no longer supported). The addon has been updated from Java 17 to Java 21. Make sure your server meets these requirements before upgrading.
Legend
- 🔡 locale files may need to be regenerated or updated.
- ⚙️ config options have been removed, renamed, or added.
- 🔺 special attention needed.
New Features
⚙️ Ocean Biome Preservation
[PR #159]
A new change-ocean-biomes config option controls whether biome changes affect blocks that are currently in an ocean biome (OCEAN, WARM_OCEAN, DEEP_OCEAN, etc.). When set to false (the default), ocean blocks keep their original biome, preserving island shorelines and underwater environments. Set to true to restore the previous behavior where all blocks are changed regardless of their current biome.
🔡 Overhauled Biomes Template
[PR #163]
The default biomesTemplate.yml has been completely rebalanced for better progression and fun. The template now includes 44 biomes (up from ~29), with 9 new additions including Mangrove Swamp, Pale Garden (with The Creaking mob), Bamboo Jungle, and more. Costs are rebalanced to correlate with mob exclusivity, 3 biomes showcase the PER_USAGE cost mechanic, and 3 bundles (Starter, Explorer, Nether & End) provide working examples. The level curve is smoothed so every 25-level band offers 3+ options.
COMMAND Panel Action Type
[PR #167]
Panel buttons can now execute commands when clicked by using the new COMMAND action type. This works both as a standalone button type and as an action on existing biome buttons alongside CHANGE/BUY/ADVANCED_PANEL. Admins can use this to add custom navigation (e.g., a "Back to Island Panel" button) or trigger any command from within the biomes GUI.
Gamemode-Aware Unlock Notifications
Biome unlock messages are now context-sensitive. When a player is in the correct gamemode world, they receive the familiar clickable "use it now" prompt. When they are in a different world (e.g., another gamemode or wilderness), they receive a plain message naming the gamemode where the biome was unlocked, avoiding confusion from running commands in the wrong world.
Auto-Import Default Biomes
[PR #159]
When the addon starts up and finds no biomes configured for a gamemode, it now automatically imports from biomesTemplate.yml. This removes the manual import step for fresh installations and makes the addon work out-of-the-box.
Bug Fixes
Biome Queue Cancellation on Island Delete/Reset
[PR #158]
Biome update tasks queued for an island continued processing even after the island was deleted or reset, applying biome changes to an invalid island. Tasks are now cancelled on both IslandDeleteEvent and IslandResettedEvent, with in-progress tasks stopped at the next chunk boundary via an AtomicBoolean cancellation flag.
Floating-Point Display Imprecision
[PR #157]
Cost values like 0.03 were displayed as 0.0299999999329447746 in admin GUI tooltips due to bare String.valueOf(double) calls. A new Utils.formatDouble() method using DecimalFormat("0.###") now shows clean values with up to 3 decimal places.
DecimalFormat Locale Fix
[PR #165]
The decimal formatter was using the JVM's default locale, causing servers with e.g. a German locale to format 0.5 as 0,5. Now pinned to Locale.ROOT for consistent dot-separated decimal display.
BiomeUpdateTask Cancellation Effectiveness
[PR #165]
Previously, calling cancelBiomeUpdates completed the future but left the task actively mutating biomes. The task now checks an AtomicBoolean cancelled flag between chunks and before block iteration, making cancellation truly effective for in-progress tasks.
Biomes Template Item Quantities
Spigot/Paper changed oversize stack limits to 1-99, which prevented loading items from the template when quantities exceeded 100. Items are now split into valid stack sizes.
Other Improvements
- 🔺 Modernised build stack — Java 17→21, Spigot→Paper API, BentoBox 2.7.1→3.14.0, Greenhouse 1.4.0→1.9.2, maven-compiler-plugin 3.7.0→3.15.0, maven-surefire-plugin 2.22.0→3.5.2 [PR #161]
- New test suite — 82 JUnit 5 + MockBukkit tests replacing the unused PowerMock infrastructure, covering BiomesAddon, data objects, and all listeners [PR #161]
- Bumped
plugin.ymlapi-version from 1.19 to 1.21 [PR #161] - Removed erroneous
IllegalAccessExceptioncatch blocks in WebManager [PR #165]
What's Changed
- Fix floating-point display imprecision for cost/increment values in admin panels by @copilot in #157
- Cancel queued biome changes when island is deleted or reset by @copilot in #158
- ⚙️ Add
change-ocean-biomesconfig option to preserve ocean biomes during biome changes by @copilot in #159 - 🔡 Make biome unlock notifications gamemode-aware by @tastybento in #160
- 🔺 Modernisation cleanup: pom.xml, plugin.yml api-version, IslandLevelListener test by @tastybento in #161
- 🔡 Migrate text formatting from legacy color codes to MiniMessage by @tastybento in #162
- 🔡 Overhaul biomesTemplate for better progression and fun by @tastybento in #163
- Fix DecimalFormat locale, add BiomeUpdateTask cancellation, fix WebManager compile error by @copilot in #165
- ⚙️ Add COMMAND action type support to Biomes panel buttons by @copilot in #167
Full Changelog: 2.2.1...2.3.0
Release 2.2.1
Compatibility
✔️ BentoBox API 3.4.0
✔️ Minecraft 1.21.5
✔️ Java 21
Changelog
Legend
- 🔡 locale files may need to be regenerated or updated.
- ⚙️ config options have been removed, renamed or added.
- 🔺 special attention needed.
What's Changed
- 153 cannot retrieve chunk asynchronously by @tastybento in #154
- Release 2.2.1 by @tastybento in #155
Full Changelog: 2.2.0...2.2.1
Release 2.2.0
Compatibility
✔️ BentoBox API 2.7.1
✔️ Minecraft 1.21.3
✔️ Java 17
Changelog
Legend
- 🔡 locale files may need to be regenerated or updated.
- ⚙️ config options have been removed, renamed or added.
- 🔺 special attention needed.
What's Changed
- 🔡 Add Ukrainian locale by @gitlocalize-app in #124
- 🔡 Spanish translation by @gitlocalize-app in #126
- 🔡 fix legacy translation mistake by @RUYSUE in #129
- 🔡 Biomes translation by @gitlocalize-app in #128
- 🔡 French translation by @gitlocalize-app in #127
- 🔡 Update zh-CN.yml by @huguyt in #130
- Tastybento patch by @tastybento in #133
- Fix for #132 by @tastybento in #134
- Fix biome naming in GUI and filtering by @tastybento in #135
- Fixes #123 by @tastybento in #136
- 🔡 Add new options to zh-CN.yml by @huguyt in #137
- 🔡 Spanish Translation by @gitlocalize-app in #144
- 🔡 Japanese translation by @gitlocalize-app in #145
- Format money using vault by @tastybento in #143
- 🔡 Chinese translation by @gitlocalize-app in #138
- Only register IslandLevelListener if Level addon is present, Fix typos (commends) by @IAISI in #140
- ⚙️ Update biomesTemplate.yml by @tastybento in #146
- 🔺 Update to 1.21.3 by @tastybento in #147
- Release 2.2.0 by @tastybento in #125
New Contributors
- @RUYSUE made their first contribution in #129
- @huguyt made their first contribution in #130
- @IAISI made their first contribution in #140
Full Changelog: 2.1.1...2.2.0
Release 2.1.1
Compatibility
✔️ BentoBox API 1.23
✔️ Minecraft 1.19
Changelog
Legend
- 🔡 locale files may need to be regenerated or updated.
- ⚙️ config options have been removed, renamed or added.
- 🔺 special attention needed.
Changes
- Update to BentoBox 1.23 API changes.
Full Changelog: 2.1.0...2.1.1
Release 2.1.0
Compatibility
✔️ BentoBox API 1.21
✔️ Minecraft 1.19
Changelog
Legend
- 🔡 locale files may need to be regenerated or updated.
- ⚙️ config options have been removed, renamed or added.
- 🔺 special attention needed.
Changes
- Fixes addon crash on disable.
- Fixes biome purchase cost detection.
- Fixes biome not unlocking on purchase.
- Fixes some bugs with range updating.
- Add the option to use a single (default) menu to activate/buy biomes.
- Add 1.19 Biomes.
- 🔡 Fixes some issues with localization.
- Implement an option to limit the minimal and maximal value users can specify in the advanced update panel. #111
Full Changelog: 2.0.0...2.1.0
Release 2.0
Compatibility
✔️ BentoBox API 1.20
✔️ Minecraft 1.18
Changelog
Legend
- 🔡 locale files may need to be regenerated or updated.
- ⚙️ config options have been removed, renamed or added.
- 🔺 special attention needed.
Changes
- 🔺Update to BentoBox 1.20 API
- 🔺⚙️🔡Implement Customizable user GUI's
- ⚙️Implement a chunk "refresh" option that allows viewing biome instantly, instead of unloading area.
- 🔡🔺 Complete locales rework. Sorry
- Implement UNLOCKABLE and BUYABLE options for biomes
- 🔺Rework template file. Not compatible with older versions.
- Rework biome change task. Should improve Biomes change performance.
- Implement Biomes Bundles.
Full Changelog: 1.14.0...2.0.0
Release 1.14.0
Compatibility
✔️ BentoBox API 1.15.4.
✔️ Minecraft 1.16.4
Changelog
Legend
- 🔡 locale files may need to be regenerated or updated.
- ⚙️ config options have been removed, renamed or added.
- 🔺 special attention needed.
Changes
- Update Level addon API.
- 🔺Update to BentoBox 1.15.4 API
- Fix a bug when Biome disable Vault before Economy was even loaded.
- Fix a bug when Biome was changed in GreenHouses.
- 🔺Implement 3 new permissions that allow customize biome changing (#81)
- [gamemode].biomes.set.ISLAND.* - default: true (* is a biome unique id)
- [gamemode].biomes.set.RANGE.* - default: true (* is a biome unique id)
- [gamemode].biomes.set.CHUNK.* - default: true (* is a biome unique id)
- Add BiomeBuyEvent (#79)
- 🔡 Add Russian translation (#82)
- 🔡 Add Turkish translation (#83)
Release 1.13.0
Compatibility
✔️ BentoBox API 1.14.0.
✔️ Minecraft 1.16.1 (tested with 1.15.2)
Changelog
Legend
- 🔡 locale files may need to be regenerated or updated.
- ⚙️ config options have been removed, renamed or added.
- 🔺 special attention needed.
Bug Fixes
- Version up 1.12.0 (commit: 8c32dcc)
- Updated BentoBox, Level, Spigot dependencies to latest versions (commit: 8fb94ee)
- Force loads the chunks asynchronously using PaperLib (commit: ff0a2c6)
- Entirely dropped 1.13 support (commit: 7c3ba68)
- Fixed tests (commit: 80fc4a7)
- Fix array out of bounds exception. (commit: a128d12)
- Added defaults perms for aoneblock (commit: 4189acc)
- Updates locales to change square to range (commit: 59de58c)
- Update to BentoBox API 1.14 (#67) (commit: 59cace6)
- Add generic gamemode permission. (commit: a4be6b9)
- Extend gitIgnore to more files. (commit: 6d22235)
- Update to Spigot 1.16.1. (commit: a8cf13c)
- Add several useful util methods. (commit: 4e9cae3)
- Continue to implement environment. (commit: 8c3e28c)
- Fix crashes in jenkins. (commit: 4ff29c3)
- Update readme (commit: 7288887)
- Fixes NPE in test (commit: 60691a4)
- Fixes #69 (commit: 052da76)
- Adds spaces after color codes (#72) (commit: 43f22cb)
- Add 1.15 backward compatibility code. (commit: cf60447)
- Update to latest Level API (#76) (commit: dd11247)
- Removed unused imports. Added deprecation suppression. (commit: 9528824)
- Code cleanup (commit: 607c29a)
- Return nothing instead of null (commit: e67131e)
- Used constants for recurring references. (commit: 8b7a941)
- Simplified onEnable complexity. (commit: f4cf8b4)
1.7.0 Release
Compatibility
✔️ BentoBox API 1.6.0.
✔️ Minecraft 1.13.2.
Changelog
Legend
- 🔡 locale files may need to be regenerated or updated.
- ⚙️ config options have been removed, renamed or added.
- 🔺 special attention needed.
Contents
Features
- 🔡 Czech translation (Credit @Polda18)
- 🔡Add German translation (#59)
- 🔡Add French translation (#52)
- 🔡Add Spanish translation (Credit @SrAcosta)
- 🔡Improved English translation
Bug Fixes
- Biomes could unload chunks in the world causing a server crash (rare but critical)
- Fix coolDown issue (#48)
Beta Release 2
Description
This is the second Beta release for Biomes Addon, that comes a bit late. Unfortunately, in this release, it was necessary to remove AnvilGUI. That mean all text inputs now will be done through chat.
Also to avoid any issues with world names, all objects changed unique name creating a scheme. So old objects will not load. It will be necessary to migrate to a new format.
The biggest improvement in this update is the ability to change biome in unloaded chunks. It will not be instant but will be pretty fast.
Updated to work with BentoBox 1.6.*.
WARNING
Migration is necessary if you upgrade from the older version.
To do it, you can run the command /[gamemode_admin] biomes migrate
Also, Biomes Lore (description) generation is changed. If your biomes description is empty, you need to regenerate config.yml or in Settings panel (accessible via admin panel), clicking on Lore button.
Changelog
Legend
- 🔡 locale files may need to be regenerated or updated.
- ⚙️ config options have been removed, renamed or added.
- 🔺 special attention needed.
Contents
- Features
- 🔡🔺Remove AnvilGUI
- 🔡🔺⚙ Rework Biomes Lore Creating
- 🔺Rework Data Storage (migration necessary)
- ⚙ Add ability to change biome in unloaded chunks.
- Tweaks
- Remove VISITOR_RANK setting for BIOMES_ISLAND_PROTECTION flag. (#44)
- Set Biomes Addon flags to Advanced Mode.
- Add protection for changing biome to be limited by island range.
- BugFixes