Island Biomes

Let players change their island biome. Turn a plains island into a jungle, desert, mushroom fields, or any biome you configure.

File Details

Biomes-2.3.0.jar

  • R
  • May 7, 2026
  • 507.23 KB
  • 6
  • 26.1.2+10

File Name

Biomes-2.3.0.jar

Supported Versions

  • 26.1.2
  • 26.1.1
  • 26.1
  • 1.21.5-Snapshot
  • 1.21.11
  • 1.21.10
  • 1.21.9
  • 1.21.8
  • 1.21.7
  • 1.21.6
  • 1.21.5

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-biomes config 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 COMMAND action 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.yml on 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

  1. As always, take backups just in case. (Make a copy of everything!)
  2. Stop the server.
  3. Replace the old Biomes jar with this one in plugins/BentoBox/addons/.
  4. Restart the server.
  5. If you want the new biomes template, delete your existing biome data and let the addon auto-import, or run /bsbadmin biomes import.
  6. Review config.yml for the new change-ocean-biomes option.
  7. 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-biomes option has been added to config.yml (defaults to false). With this default, ocean biome blocks are preserved during biome changes. Set to true to 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

[PR #160] Fixes #112

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.yml api-version from 1.19 to 1.21 [PR #161]
  • Removed erroneous IllegalAccessException catch blocks in WebManager [PR #165]

What's Changed

Full Changelog: https://github.com/BentoBoxWorld/Biomes/compare/2.2.1...2.3.0