From c7ee9060d77b81b0933a3726129082121da1eb64 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 23 Mar 2026 02:15:57 +0000 Subject: [PATCH 1/3] Initial plan From b14744ebac9c7f6c50ea68bb30f892016a916283 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 23 Mar 2026 02:18:57 +0000 Subject: [PATCH 2/3] docs: add CHANGELOG.md with 3.12.0 release notes Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com> Agent-Logs-Url: https://github.com/BentoBoxWorld/BentoBox/sessions/7e294ef3-3871-4400-b073-b3a0488c9be5 --- CHANGELOG.md | 214 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 214 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..6d9582579 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,214 @@ +# BentoBox Changelog + +## [3.12.0] β€” 2026-03 + +### New Release Highlights + +* πŸ—ΊοΈ βš™οΈ **Web-map integrations** β€” BentoBox now ships with built-in **BlueMap** and **Dynmap** hooks that display island markers and area overlays on your web map automatically. A public Map API lets addon authors target any web-map plugin. +* βš™οΈ πŸ”‘ **SPAWN_PROTECTION world flag** β€” Prevents players from dying to the void at spawn. Configurable per game-mode via the world settings panel. +* βš™οΈ πŸ”‘ **WIND_CHARGE protection flag** β€” Controls whether visitors can fire wind charges on islands. Defaults to blocked for visitors. +* βš™οΈ πŸ”‘ **Expel fallback command** β€” A new `expelCommand` config key (default: `spawn`) specifies the command run when an expelled player has no island or spawn point to fall back to. +* βš™οΈ πŸ”‘ **Blueprint paste commands** β€” Blueprint bundles can define a list of commands that run when the blueprint is pasted, enabling automation on island creation. +* πŸ”‘ **Blueprint GUI pagination** β€” The blueprint management panel now paginates so large blueprint libraries are no longer cramped onto a single screen. +* βš™οΈ πŸ”‘ **Admin max team-size command** β€” A new `/bbox admin setmaxteamsize ` command lets you override the maximum team size on a per-island basis without editing config files. +* πŸ”‘ **Clickable home list** β€” The `/is homes` list is now clickable; selecting a home name in chat runs the go-home command automatically. +* βš™οΈ πŸ”‘ **Force-field fling** β€” Players are now flung away from island force-fields when they walk into them, rather than just being teleported (improves feel on flying game modes). +* βš™οΈ **Obsidian-scooping abuse fix** β€” Two new config knobs (`obsidianScoopingCooldown` and `obsidianScoopingRadius`) prevent rapid lava/obsidian duplication exploits. + +### Compatibility + +βœ”οΈ Paper Minecraft 1.21.5 – 1.21.1 +βœ”οΈ Java 21 + +### 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. Restart the server. +5. You should be good to go! + +> βš™οΈ **Config migration note:** Three new keys are added to `config.yml` (`expelCommand`, `obsidianScoopingRadius`, `obsidianScoopingCooldown`). BentoBox will add them automatically on first start. + +### Legend + +- πŸ”‘ locale files may need to be regenerated or updated. +- βš™οΈ config options have been removed, renamed, or added. +- πŸ”Ί special attention needed. + +--- + +## New Features + +### βš™οΈ BlueMap & Dynmap Web-Map Integration +[[PR #2861](https://github.com/BentoBoxWorld/BentoBox/pull/2861)] [[PR #2883](https://github.com/BentoBoxWorld/BentoBox/pull/2883)] [[PR #2884](https://github.com/BentoBoxWorld/BentoBox/pull/2884)] [[PR #2885](https://github.com/BentoBoxWorld/BentoBox/pull/2885)] + +BentoBox now ships with hooks for [BlueMap](https://bluemap.bluecolored.de/) and [Dynmap](https://www.spigotmc.org/resources/dynmap.274/). When either plugin is installed, island markers and (for BlueMap) coloured area overlays are added to the live web map automatically, without any configuration required. + +A new generic **Map API** (`world.bentobox.bentobox.api.map`) lets addon authors register their own web-map implementations, so any mapping plugin can be supported in the future. + +### βš™οΈ πŸ”‘ SPAWN_PROTECTION World Setting Flag +[[PR #2865](https://github.com/BentoBoxWorld/BentoBox/pull/2865)] + +A new `SPAWN_PROTECTION` world setting flag prevents players at spawn from falling into the void. When enabled, the spawn area is treated as protected ground and void-death is suppressed. Useful for game modes where the spawn platform is exposed. + +### βš™οΈ πŸ”‘ WIND_CHARGE Protection Flag +[[PR #2855](https://github.com/BentoBoxWorld/BentoBox/pull/2855)] + +A new `WIND_CHARGE` island protection flag controls who can use wind charge items on an island. By default visitors are blocked, preventing griefing through knockback. + +### βš™οΈ πŸ”‘ Expel Fallback Command +[[PR #2846](https://github.com/BentoBoxWorld/BentoBox/pull/2846)] + +A new `expelCommand` setting in `config.yml` (default: `spawn`) specifies the console command run when an expelled player has no home island and no known spawn point. Previously such players would be stuck. + +### βš™οΈ Blueprint Paste Commands +[[PR #2852](https://github.com/BentoBoxWorld/BentoBox/pull/2852)] + +Blueprint bundles now support an optional `commands` list. Each command is run (as the server console) when the bundle's blueprint is pasted, making it easy to trigger automation or economy actions on island creation. + +### πŸ”‘ Blueprint GUI Pagination +[[PR #2867](https://github.com/BentoBoxWorld/BentoBox/pull/2867)] + +The blueprint management GUI now paginates. Servers with large numbers of blueprints will see next/previous page navigation buttons instead of a single overflowing panel. + +### βš™οΈ πŸ”‘ Admin Max Team-Size Command +[[PR #2851](https://github.com/BentoBoxWorld/BentoBox/pull/2851)] [[PR #2854](https://github.com/BentoBoxWorld/BentoBox/pull/2854)] + +A new `/bbox admin setmaxteamsize ` command lets server admins override the maximum team size for a specific island at runtime, without touching config files. + +### πŸ”‘ Clickable Home List in Chat +[[PR #2879](https://github.com/BentoBoxWorld/BentoBox/pull/2879)] + +The `/is homes` listing in chat is now clickable. Clicking a home name runs the go-home command for that home automatically, saving players from typing. + +### πŸ”‘ Force-Field Fling +[[PR #2122](https://github.com/BentoBoxWorld/BentoBox/pull/2122)] [[PR #2880](https://github.com/BentoBoxWorld/BentoBox/pull/2880)] + +Players who walk into an island force-field (locked island boundary) are now physically flung back rather than teleported, giving a more natural feel, especially on flying game modes. + +### πŸ”‘ Bypass Lock Notification +[[PR #2869](https://github.com/BentoBoxWorld/BentoBox/pull/2869)] + +Admins and players with the bypass permission now receive a notification message when they enter a locked island, so it is clear that the lock has been overridden. + +### Geo-Limit Projectiles +[[PR #2863](https://github.com/BentoBoxWorld/BentoBox/pull/2863)] + +Projectiles (arrows, tridents, etc.) are now included in the geo-limit settings panel, giving island owners granular control over which projectile types visitors are allowed to fire. + +### Paginated Help Command +[[PR #2859](https://github.com/BentoBoxWorld/BentoBox/pull/2859)] + +`/is help` now supports a page number argument (`/is help 2`) so large command lists do not flood chat. + +### /island lock Command +[[PR #2858](https://github.com/BentoBoxWorld/BentoBox/pull/2858)] + +A new `/island lock` shortcut command lets island owners toggle the island lock without opening the settings panel. + +--- + +## Bug Fixes + +### Lava Bucket / Obsidian Duplication +[[PR #2842](https://github.com/BentoBoxWorld/BentoBox/pull/2842)] [[PR #2856](https://github.com/BentoBoxWorld/BentoBox/pull/2856)] [[PR #2860](https://github.com/BentoBoxWorld/BentoBox/pull/2860)] + +Fixed an exploit where players could rapidly scoop buckets of lava from obsidian to duplicate it. A per-player cooldown (`obsidianScoopingCooldown`, default: 1 minute) and a proximity radius check (`obsidianScoopingRadius`, default: 5 blocks) now prevent abuse. Both values are configurable in `config.yml`. + +### Player XP Not Resetting +[[PR #2866](https://github.com/BentoBoxWorld/BentoBox/pull/2866)] + +Fixed a bug where player XP was not being reset when joining a team or creating a new island via the no-teleport code path. + +### Sugar Cane, Cocoa Beans & Nether Wart Protection Flags +[[PR #2870](https://github.com/BentoBoxWorld/BentoBox/pull/2870)] + +Sugar cane was not registered under the `HARVEST` flag and was not protected against premature breaking. Sugar cane, cocoa beans, and nether wart were also missing from `CROP_PLANTING` protection. They now all respect the correct flag settings. + +### Purge Unowned Islands NPE +[[PR #2843](https://github.com/BentoBoxWorld/BentoBox/pull/2843)] + +Fixed a `NullPointerException` in the purge-unowned-islands command that occurred when an island's world was `null`. + +### End/Nether Explosion Crash +[[PR #2844](https://github.com/BentoBoxWorld/BentoBox/pull/2844)] + +Fixed a `NullPointerException` in `StandardSpawnProtectionListener` that occurred when an explosion happened in a standard End or Nether world that was not managed by BentoBox. + +### Island Settings Comparator +[[PR #2864](https://github.com/BentoBoxWorld/BentoBox/pull/2864)] + +Fixed an inconsistent comparator in the island settings panel that could throw a `IllegalArgumentException` under certain flag ordering conditions. + +### Color Codes in Multi-Line Translated Strings +[[PR #2877](https://github.com/BentoBoxWorld/BentoBox/pull/2877)] + +Fixed color/formatting codes being stripped from the second and subsequent lines of multi-line locale strings. + +--- + +## Configuration Changes + +Three new settings in `config.yml`: + +| Key | Default | Description | +|-----|---------|-------------| +| `expelCommand` | `spawn` | Console command run when an expelled player has no destination | +| `obsidianScoopingRadius` | `5` | Block radius (0–15) checked for nearby obsidian during bucket use | +| `obsidianScoopingCooldown` | `1` | Minutes before a player can scoop obsidian again (minimum: 1) | + +--- + +## Internal / Developer Changes + +* Added a generic **Map API** (`api/map`) so addon authors can integrate with any web-map plugin. +* Extensive SonarCloud quality pass: sealed classes, `ChatColor` removal, lambda/`@Override` style, variable-shadowing fixes, cognitive-complexity reductions (see [PR #2875](https://github.com/BentoBoxWorld/BentoBox/pull/2875)). +* Removed unnecessary `public` modifiers from JUnit 5 test classes and methods ([PR #2849](https://github.com/BentoBoxWorld/BentoBox/pull/2849)). +* Added `CLAUDE.md` project guidance file for AI-assisted development ([PR #2848](https://github.com/BentoBoxWorld/BentoBox/pull/2848)). +* Resolved all previously failing and skipped tests; test suite is now fully green ([PR #2872](https://github.com/BentoBoxWorld/BentoBox/pull/2872)). +* Added public API method for reading Why-debug flag messages from `FlagListener` ([PR #2857](https://github.com/BentoBoxWorld/BentoBox/pull/2857)). + +--- + +## What's Changed + +* Fix lava bucket duplication exploit with obsidian scooping cooldown by @Copilot in https://github.com/BentoBoxWorld/BentoBox/pull/2842 +* Fix NPE in purge unowned command when island world is null by @Copilot in https://github.com/BentoBoxWorld/BentoBox/pull/2843 +* Fix NPE in StandardSpawnProtectionListener for end/nether explosions by @Copilot in https://github.com/BentoBoxWorld/BentoBox/pull/2844 +* Fix error message when setting home by @Copilot in https://github.com/BentoBoxWorld/BentoBox/pull/2845 +* βš™οΈ πŸ”‘ Add expelCommand config for expelled player fallback by @Copilot in https://github.com/BentoBoxWorld/BentoBox/pull/2846 +* Add Copilot instructions setup by @Copilot in https://github.com/BentoBoxWorld/BentoBox/pull/2848 +* chore: remove public modifiers from JUnit 5 test methods by @tastybento in https://github.com/BentoBoxWorld/BentoBox/pull/2849 +* βš™οΈ Run commands when blueprint bundle is pasted by @Copilot in https://github.com/BentoBoxWorld/BentoBox/pull/2852 +* Fix black glass description by @Copilot in https://github.com/BentoBoxWorld/BentoBox/pull/2853 +* βš™οΈ πŸ”‘ Add AdminTeamSetMaxSizeCommand by @Copilot in https://github.com/BentoBoxWorld/BentoBox/pull/2851 +* βš™οΈ πŸ”‘ Show team size in admin info and add coop/trust placeholders by @Copilot in https://github.com/BentoBoxWorld/BentoBox/pull/2854 +* βš™οΈ πŸ”‘ Add WIND_CHARGE island protection flag by @Copilot in https://github.com/BentoBoxWorld/BentoBox/pull/2855 +* βš™οΈ Add configurable obsidian scooping radius by @Copilot in https://github.com/BentoBoxWorld/BentoBox/pull/2856 +* Add public API for Why debug reporting in FlagListener by @Copilot in https://github.com/BentoBoxWorld/BentoBox/pull/2857 +* πŸ”‘ Add /island lock command by @Copilot in https://github.com/BentoBoxWorld/BentoBox/pull/2858 +* πŸ”‘ Add pagination to DefaultHelpCommand by @Copilot in https://github.com/BentoBoxWorld/BentoBox/pull/2859 +* βš™οΈ Add configurable obsidian scooping cooldown duration by @Copilot in https://github.com/BentoBoxWorld/BentoBox/pull/2860 +* βš™οΈ Add BlueMap hook for island markers by @tastybento in https://github.com/BentoBoxWorld/BentoBox/pull/2861 +* Add projectile support to geo-limit-settings by @Copilot in https://github.com/BentoBoxWorld/BentoBox/pull/2863 +* Fix island settings comparator by @Copilot in https://github.com/BentoBoxWorld/BentoBox/pull/2864 +* βš™οΈ πŸ”‘ Add SPAWN_PROTECTION world setting flag by @Copilot in https://github.com/BentoBoxWorld/BentoBox/pull/2865 +* Fix player XP not resetting on team join or island creation by @Copilot in https://github.com/BentoBoxWorld/BentoBox/pull/2866 +* πŸ”‘ Add pagination to blueprint management GUI by @Copilot in https://github.com/BentoBoxWorld/BentoBox/pull/2867 +* Fix BSkyBlock end world protection by @Copilot in https://github.com/BentoBoxWorld/BentoBox/pull/2868 +* πŸ”‘ Add bypass lock notification message by @Copilot in https://github.com/BentoBoxWorld/BentoBox/pull/2869 +* Fix sugar cane / cocoa beans / nether wart protection flags by @Copilot in https://github.com/BentoBoxWorld/BentoBox/pull/2870 +* Fix all failing and skipped tests by @tastybento in https://github.com/BentoBoxWorld/BentoBox/pull/2872 +* Fix BlueMap hook registration error by @Copilot in https://github.com/BentoBoxWorld/BentoBox/pull/2874 +* Fix SonarCloud issues (low / medium / high) by @tastybento in https://github.com/BentoBoxWorld/BentoBox/pull/2875 +* Fix color codes in multi-line translated strings by @Copilot in https://github.com/BentoBoxWorld/BentoBox/pull/2877 +* πŸ”‘ Make home list clickable in chat by @Copilot in https://github.com/BentoBoxWorld/BentoBox/pull/2879 +* Merge force-field fling feature by @Copilot in https://github.com/BentoBoxWorld/BentoBox/pull/2880 +* Fix translation hover text by @Copilot in https://github.com/BentoBoxWorld/BentoBox/pull/2882 +* βš™οΈ Add Dynmap hook for island border display by @tastybento in https://github.com/BentoBoxWorld/BentoBox/pull/2883 +* Add area markers and public API to BlueMapHook by @tastybento in https://github.com/BentoBoxWorld/BentoBox/pull/2884 +* βš™οΈ Add generic Map API for web-map addon integration by @tastybento in https://github.com/BentoBoxWorld/BentoBox/pull/2885 +* Release 3.12.0 by @tastybento + +**Full Changelog**: https://github.com/BentoBoxWorld/BentoBox/compare/3.11.2...3.12.0 From 46555f04721ffd5b590fc64b82e89932c5c5e3a9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 28 Mar 2026 00:37:35 +0000 Subject: [PATCH 3/3] docs: update CHANGELOG.md with changes since initial draft (PR #2890, Map API polish) Agent-Logs-Url: https://github.com/BentoBoxWorld/BentoBox/sessions/00556d10-09e4-43f5-ac30-de5e10feae0c Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com> --- CHANGELOG.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d9582579..a7fe897c6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # BentoBox Changelog -## [3.12.0] β€” 2026-03 +## [3.12.0] β€” 2026-03-28 ### New Release Highlights @@ -47,6 +47,11 @@ BentoBox now ships with hooks for [BlueMap](https://bluemap.bluecolored.de/) and A new generic **Map API** (`world.bentobox.bentobox.api.map`) lets addon authors register their own web-map implementations, so any mapping plugin can be supported in the future. +Additional Map API polish after initial merge: +- Map hooks now register before addons enable, so addons can create markers during `onEnable()`. Island population is deferred to `BentoBoxReadyEvent` when islands are fully loaded. +- `addPointMarker()` now accepts an `iconName` parameter; Dynmap maps this to its icon registry (with fallback to `"default"`) and all 85 built-in Dynmap icon names are documented in `MapManager` Javadoc. +- Dynmap point marker labels support HTML markup (e.g. coloured owner names) via `isMarkupLabel=true`. + ### βš™οΈ πŸ”‘ SPAWN_PROTECTION World Setting Flag [[PR #2865](https://github.com/BentoBoxWorld/BentoBox/pull/2865)] @@ -146,6 +151,11 @@ Fixed an inconsistent comparator in the island settings panel that could throw a Fixed color/formatting codes being stripped from the second and subsequent lines of multi-line locale strings. +### Players Falling into the Void on New Island Creation +[[PR #2890](https://github.com/BentoBoxWorld/BentoBox/pull/2890)] + +Fixed a bug where players could fall into the void immediately after a new island was created if the teleport destination hadn't solidified yet. `homeTeleportAsync` now performs a safe-spot check before teleporting and retries with exception handling if the location lookup fails, preventing void deaths on fresh islands. + --- ## Configuration Changes @@ -209,6 +219,7 @@ Three new settings in `config.yml`: * βš™οΈ Add Dynmap hook for island border display by @tastybento in https://github.com/BentoBoxWorld/BentoBox/pull/2883 * Add area markers and public API to BlueMapHook by @tastybento in https://github.com/BentoBoxWorld/BentoBox/pull/2884 * βš™οΈ Add generic Map API for web-map addon integration by @tastybento in https://github.com/BentoBoxWorld/BentoBox/pull/2885 +* Fix players falling into void on new island creation by @Copilot in https://github.com/BentoBoxWorld/BentoBox/pull/2890 * Release 3.12.0 by @tastybento **Full Changelog**: https://github.com/BentoBoxWorld/BentoBox/compare/3.11.2...3.12.0