
Island Level & Leaderboards
Island level calculator and server leaderboards. Track progression and compete across all BentoBox game modes.
Список изменений
🎁 What's new
Level 2.27.0 introduces an opt-in donations-only mode that skips the island block scan entirely and computes the island level only from blocks donated via /island donate — a major CPU saving on busy servers that prefer a donation-driven economy. The release also adds the new /island donate inv command for one-shot inventory donations, and brings first-class support for custom blocks across the value, detail, and donate menus, so blocks from Oraxen, Nexo, ItemsAdder, and CraftEngine now render with their real icon and display name and can be valued, detailed, and donated like vanilla blocks. A long-standing bug producing negative progression values when using a non-linear level-calc formula is also fixed.
🔺 Level 2.27.0 requires BentoBox 3.16.0 or later.
✨ Highlights
⚙️ Donations-only mode (#432, #433)
- New
donations-onlyoption inconfig.yml(defaultfalse). Whentrue, the per-recalculation chunk scan is skipped entirely; the island level is computed from donated points alone using the configuredlevel-calcformula /island level,/island top,/island value, and/island donatecontinue to work;/island detailis not registered (no scanned blocks to break down) and the top-ten panel's viewer button no longer shows "Click to view" or opens the detail panel- The zero-island scan that runs on island creation/reset still runs under donations-only when
zero-new-island-levels: true, so the starter-island handicap is recorded intoinitialCountand applied correctly if an admin later turns donations-only off - While donations-only is on, the stored
initialCountis ignored at/island leveltime, so flipping the mode on for a server with existing islands does not push players to wildly negative levels
💎 /island donate inv — donate everything from inventory (#422)
- New confirmable
invsubcommand: lists every donatable block in the player's inventory with per-material values and a running total, then on confirm donates them all and runs a level recalc - Items with no configured value and non-blocks stay in the inventory after donation
- Tab-complete now suggests
hand/invfor the first arg, and the held-item count afterhand— the previous tab-complete branch never fired in real use - Help text updated to
parameters: "[hand [amount]] [inv]"
🧱 Custom block support across value, detail, and donate menus (#425, #427, #429)
- Oraxen, Nexo, ItemsAdder, and CraftEngine custom blocks are no longer filtered out of
/level valueor rendered as nameless PAPER icons in/level detail - The value panel and details panel both look up the real custom-block
ItemStackfrom each plugin's registry, so the configured texture / model data and display name are preserved /island value handon a held custom item now reports the configured value and display name instead of "no value" or the prettified namespaced key- Donation paths (
/island donate hand,/island donate inv, and the donation panel) accept custom-block items, recording donations under the custom ID - CraftEngine items are now resolved via the new BentoBox
CraftEngineHook.getItemId/getItemStackhelpers, so they appear with the correct icon and name throughout
🐛 Fixes
- Negative values in island progression when
level-calcis a non-linear function (e.g.3 * sqrt(blocks / level_cost)) — progression no longer dips below zero between levels (#423, thanks @msmith-codes!)
⚡ Performance
tidyUp()no longer walks up to 10M points linearly on the primary thread when com✨g point boundaries — the forward and backward scans now use binary search (~23 iterations instead of millions), each saving acalculateLevel()string parse + eval per step
⚙️ Compatibility
✔️ BentoBox API 3.16.0 🔺 ✔️ Minecraft 1.21.x and 26.1.x ✔️ Java 21
🔺 Updating — important notes
🔺 BentoBox 3.16.0+ required. This release bumps the
api-versioninaddon.ymlto3.16.0and depends on the newCraftEngineHook.getItemId/getItemStackhelpers. Older BentoBox versions will refuse to load the addon.
⚙️ New
donations-onlyconfig key. Default isfalse, so existing servers behave exactly as before. Enable it only if you want a pure-donation economy — read the highlight above for what changes (no detail command, no top-panel viewer click, level driven only by/island donate).
🔡 Locales updated. All 18 shipped locales gained new
island.donate.inv.*keys (keyword,confirm-header,confirm-line,confirm-total). If you have customised locale files inplugins/BentoBox/addons/Level/locales/, copy the newdonate.invblock into them or the new/island donate invflow will show raw keys.
📥 How to update
- Stop the server
- Back up your BentoBox folder
- Update BentoBox to 3.16.0 or later
- Drop the new
Level-2.27.0.jarinto your addons folder and remove the old one - If you have customised locale files, merge in the new
island.donate.inv.*keys - Start the server
Legend
- 🔡 locale files may need to be regenerated or updated
- ⚙️ config options have been removed, renamed, or added
- 🔺 special attention needed
What's Changed
- 💎 feat:
/island donate inv— donate everything from inventory by @tastybento in https://github.com/BentoBoxWorld/Level/pull/422 - 🐛 Fixed: Negative values in progression while using a non-linear function by @msmith-codes in https://github.com/BentoBoxWorld/Level/pull/423
- 🧱 Add custom block support (Oraxen/Nexo/ItemsAdder/CraftEngine) in value, detail, and donate menus by @Copilot in https://github.com/BentoBoxWorld/Level/pull/425
- 🧱 Fix custom-block icon and display name in value panel by @tastybento in https://github.com/BentoBoxWorld/Level/pull/427
- 🧱 fix: recognize CraftEngine items in value lookups by @tastybento in https://github.com/BentoBoxWorld/Level/pull/429
- ⚙️ feat: donations-only mode — skip block scan by @tastybento in https://github.com/BentoBoxWorld/Level/pull/432
- ⚙️ fix: donations-only follow-ups (ignore stored
initialCount, still run zero-island scan, gate top-panel viewer) by @tastybento in https://github.com/BentoBoxWorld/Level/pull/433 - ⚡ perf: replace O(N) linear walks with binary search in
tidyUp()by @tastybento - 🔡 i18n: add
donate.invtranslations across all locales by @tastybento - 🔺 chore: bump
api-versionto 3.16.0 / require BentoBox 3.15.1-SNAPSHOT by @tastybento
New Contributors
- @msmith-codes made their first contribution in https://github.com/BentoBoxWorld/Level/pull/423
Full Changelog: https://github.com/BentoBoxWorld/Level/compare/2.26.0...2.27.0
