A player-experience release. BentoBox gains a **Dialogs API** — real modal UI built on Minecraft 26's native dialogs — and uses it for four high-friction flows: command confirmations, the `/island go` destination picker, team invites, and a first-join game-mode chooser. On top of that, `/island go <name>` now forgives typos, wrong case, and partial home names instead of dumping the full list.
### Compatibility
✔️ Paper Minecraft 1.21.5 – 26.2
✔️ Java 25+
### Upgrading
1. **As always, take backups just in case.** (Make a copy of everything!)
2. Stop the server.
3. Replace the BentoBox jar with this one.
4. Start the server.
5. ⚙️ A new `island.dialogs` config section is added on first run — `confirmations`, `go-picker`, and `team-invites` default **on**; `game-mode-selection` defaults **off**. Dialogs require Minecraft 26+; on older servers every flow automatically falls back to the classic chat/command behaviour, so no action is needed there.
6. 🔡 New dialog locale keys (`general.dialogs.*` plus dialog/picker keys under the confirmation, `island go`, and team-invite commands) were added to every bundled language. If you maintain custom locale files, regenerate or add these keys.
---
## Highlights
* ⚙️ 🔡 **Dialogs** — sensitive-command confirmations, the `/island go` picker, team invites, and first-join game selection can now appear as modal dialogs the player can't misread or scroll past, with automatic fallback on pre-26 servers.
* **Forgiving `/island go` matching** — `myisland`, `hom`, or a stray double-space now teleports you where you meant, instead of failing an exact case-sensitive match.
* 🔡 **uk.yml cleanup** — removed duplicated placeholder panel sections from the Ukrainian locale.
---
## New Features
### ⚙️ 🔡 Dialogs API and dialog-driven flows
[[PR #3033](https://github.com/BentoBoxWorld/BentoBox/pull/3033)] — Closes [#3021](https://github.com/BentoBoxWorld/BentoBox/issues/3021)
A new public **`world.bentobox.bentobox.api.dialogs`** package wraps Paper's modal dialog system (Minecraft 26+) alongside the Panels API: `DialogBuilder` (fluent title/body/buttons, localized via `User`), `DialogButton` (label, tooltip, main-thread `onClick`), `BBDialog` (`show(User)`), and `Dialogs.isSupported()` for graceful degradation. Everything is Adventure `Component`-based end-to-end so click actions survive.
Four flows now use it, each behind its own toggle in the new consolidated `island.dialogs` config section, and each falling back to the previous behaviour if the dialog can't be built or shown (older server, error):
| Flow | Config key | Default |
|---|---|---|
| Sensitive-command confirmations show `[Confirm]`/`[Cancel]` instead of "type the command again" | `island.dialogs.confirmations` | **on** |
| A bare `/island go` with several islands/homes opens a button-per-destination picker | `island.dialogs.go-picker` | **on** |
| Receiving a team invite auto-opens an `[Accept]`/`[Decline]` dialog | `island.dialogs.team-invites` | **on** |
| Brand-new players get a non-dismissable "choose your game" dialog when several game modes are installed | `island.dialogs.game-mode-selection` | **off** (intrusive by design) |
> ⚙️ **Config note:** the whole `island.dialogs` section is new. On servers older than Minecraft 26 the toggles are ignored and the classic behaviour is used regardless.
> 🔡 **Locale note:** the new dialog keys were translated into all 22 bundled locales, preserving each file's style.
Addon developers get the same API for their own confirmations and pickers — check `Dialogs.isSupported()` and provide a fallback, exactly as core does.
### Forgiving name matching for `/island go`
[[PR #3031](https://github.com/BentoBoxWorld/BentoBox/pull/3031)] — Part of [#3024](https://github.com/BentoBoxWorld/BentoBox/issues/3024)
`/island go <name>` used to require an exact, case-sensitive match against island and home names — any miss dumped the whole list. It now resolves the typed name in decreasing order of confidence: exact match, then case/colour/whitespace-insensitive match, then unique case-insensitive prefix (`hom` → `Home`). Anything ambiguous still falls through to the existing list rather than guessing, and the resolved canonical name is used for the teleport so named homes stay accurate.
---
## Other Improvements
### 🔡 Ukrainian locale cleanup
Removed duplicated placeholder panel sections from `uk.yml`.
---
## Legend
- 🔡 Locale files may need regenerating or updating.
- ⚙️ Config options have been added, renamed, or removed.
- 🔺 Special attention needed.
---
## What's Changed
* ⚙️ 🔡 Add Dialogs API and wire it into confirmations, go picker, team invites & first-join (#3021) by @tastybento in https://github.com/BentoBoxWorld/BentoBox/pull/3033
* Forgiving name matching for /island go (#3024) by @tastybento in https://github.com/BentoBoxWorld/BentoBox/pull/3031
* 🔡 Remove duplicated placeholder panel sections in uk.yml locale by @tastybento
**Full Changelog**: https://github.com/BentoBoxWorld/BentoBox/compare/3.20.0...3.21.0
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }