
BentoBox
SkyBlock, OneBlock, Boxed, SkyGrid, AcidIsland, CaveBlock, Poseidon, StrangerRealms - and more! These are just some of the island-based game modes that BentoBox powers. From the author of the original ASkyBlock.
Список изменений
Thhis is mostly a bug fix and API related update.
Release Highlights
- 🔲 Dialog grid layout —
DialogBuildercan now lay buttons out in a configurable number of columns with per-button widths, enabling grids, maps, and pickers without leaving the API. Used in the latest ChunkBlock. - ⚙️ bStats metrics opt-out — new
general.metricstoggle lets server owners disable BentoBox's anonymous usage statistics independently of the global bStats switch. - 🛡️ Paper 26.2 & Adventure 5 — BentoBox now compiles and runs against Paper 26.2, bringing Adventure 5 API changes that addon authors should be aware of.
- 🐛 Player head 429 spam fixed — heads with missing textures no longer trigger repeated Mojang session-server lookups that flood the console with rate-limit errors.
- 🐛 YAML numeric type widening — config values like
20written without a decimal point now correctly load intodouble,float, andlongfields instead of throwingClassCastException.
Compatibility
✔️ Paper Minecraft 1.21.x – 1.21.11 (26.2) ✔️ Java 21+
Upgrading
- As always, take backups just in case. (Make a copy of everything!)
- Stop the server.
- Replace the BentoBox jar with this one.
- Restart the server.
- You should be good to go!
⚙️ New config option:
general.metricshas been added toconfig.yml(defaulttrue). Set it tofalseand restart to disable BentoBox's bStats telemetry. The global switch inplugins/bStats/config.ymlstill works as before.
🔺 Addon authors — Adventure 5 changes: Paper 26.2 ships Adventure 5, which seals
Component(Mockito can no longer mock it) and replacesClickEvent.value()withpayload(). See PR #3067 for the full removal list and migration notes. Addons already deployed against a 26.2 server may already be affected at runtime; recompiling against BentoBox 3.22.3 will surface any issues at compile time.
Legend
- ⚙️ config options have been removed, renamed, or added.
- 🔺 special attention needed.
New Features
🔲 Dialog Grid Layout
[PR #3066]
DialogBuilder#columns(int) lays a multi-action dialog's buttons out in a grid instead of the default two-wide list. DialogButton gains a width parameter (1–1024) matching Paper's ActionButton sizing, plus withWidth(int) for resizing existing buttons. Existing callers are unaffected — omitting columns and width preserves the client's default behaviour.
⚙️ bStats Metrics Opt-Out
[PR #3065]
A new general.metrics setting (default true) in config.yml lets server owners disable BentoBox's bStats telemetry without touching the global bStats config. When set to false, no metrics collector is registered and no data is submitted. Changing this setting requires a server restart.
Bug Fixes
Player Head Texture-Less Profile Spam
[PR #3063]
Opening a panel with player heads (e.g. a top-ten list) could flood the console with HTTP 429 errors from sessionserver.mojang.com. This happened because HeadGetter delivered profiles without texture data, causing the server to re-resolve them on every panel open. Now, heads without a usable texture degrade to a plain head instead of triggering repeated lookups, and a failed fetch no longer evicts a cached head that already has a working texture.
YAML Numeric Type Widening
[PR #3068]
YAML types a number by how it is written: 20 loads as Integer regardless of the declared field type. A double config field written without a decimal point reached the setter as an Integer, and inside collections, generic erasure hid the mismatch until the first read threw ClassCastException. A new widen() helper now correctly promotes Integer to Double, Float, or Long as needed, while deliberately refusing to silently narrow Double to Integer or Long.
Literal Color Names in Panels
A previous refactor replaced deprecated ChatColor constants with NamedTextColor in string concatenations, but NamedTextColor.WHITE.toString() returns the word "white", not a color code — so the Management panel showed addon names like "whiteChallenges". Fixed by using MiniMessage tags instead.
Other Improvements
- 🔺 Paper 26.2 & Adventure 5 — Compiled against Paper 26.2 (
build.111-stable) with MockBukkit 4.116.1. See the addon author note above for API removals. [PR #3067] - Removed workarounds for 26.2 symbols that were missing at compile time —
SULFUR_CUBEis nowstatic finalagain, and tests use the real entity type directly (−87 lines). [PR #2994] - Published JSON Schemas (draft 2020-12) for the
.blueprintand blueprint-bundle file formats, covering blocks, spawners, entities, display entities, and item frames. - Referenced the new org-wide privacy policy, AI policy, and contributing guidelines from the README.
What's Changed
- 🔲 Lay dialog buttons out in a grid: columns and button width by @tastybento in https://github.com/BentoBoxWorld/BentoBox/pull/3066
- ⚙️ Add general.metrics config toggle to opt out of bStats by @tastybento in https://github.com/BentoBoxWorld/BentoBox/pull/3065
- Do not put texture-less profiles on player heads by @tastybento in https://github.com/BentoBoxWorld/BentoBox/pull/3063
- Fix: widen YAML-loaded numbers to the declared numeric field type by @tastybento in https://github.com/BentoBoxWorld/BentoBox/pull/3068
- 🔺 Compile against Paper 26.2 now that MockBukkit supports it by @tastybento in https://github.com/BentoBoxWorld/BentoBox/pull/3067
- Drop the workarounds for 26.2 symbols missing at compile time by @tastybento in https://github.com/BentoBoxWorld/BentoBox/pull/2994
Full Changelog: https://github.com/BentoBoxWorld/BentoBox/compare/3.22.2...3.22.3
