Conversation
Add a 5-minute ExpiringSet cooldown per player UUID to prevent rapid obsidian scooping that could duplicate lava buckets. After a successful scoop, the player must wait before scooping again. Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com>
Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…uplication Fix lava bucket duplication via rapid obsidian scooping
Reverse the .equals() call in getUnownedIslands() so that this.getWorld() (non-null) is the receiver instead of i.getWorld() (potentially null). Add test for null world case. Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com>
… end world Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com>
…d guidance Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com>
…-command-error Fix NPE in purge unowned command when island world is null
…tructions Add `.github/copilot-instructions.md` for Copilot coding agent
…n-explosions Fix NPE in StandardSpawnProtectionListener for standard end/nether spawn explosions
…s no island Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com>
…ission with named homes Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com>
…-setting-home Add regression tests for maxhomes.1 permission with named homes (issue #1564)
…tionality Add configurable fallback command for `/is expel` when player has no island or spawn
Adventure's LegacyComponentSerializer omits repeated §X codes when consecutive components share the same color, so &a Line1\n&a Line2 would produce §aLine1\nLine2 after serialization — lines 2+ lost their color when split into individual lore entries. Fix: process each \n-separated line independently in translateColorCodes() so every line gets its own explicit color code prefix. Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com> Agent-Logs-Url: https://github.com/BentoBoxWorld/BentoBox/sessions/e870ffb0-3904-4296-b9fe-bf88ce4967c7
…settings fix: Preserve color codes on every line of multi-line translated strings
…ommand
Modifies home list display in IslandGoCommand, IslandSethomeCommand,
IslandDeletehomeCommand, and IslandRenamehomeCommand to use clickable
text components. Each home name now has a run_command click action
(/<topLabel> go <homeName>) and a hover tooltip ("Click to teleport").
Adds new locale key commands.island.sethome.click-to-teleport for
the translatable hover text.
Fixes #2458
Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com>
Agent-Logs-Url: https://github.com/BentoBoxWorld/BentoBox/sessions/58eb3b51-0d65-487c-8499-14dc4e4714a6
…ing feature Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com> Agent-Logs-Url: https://github.com/BentoBoxWorld/BentoBox/sessions/f62452d6-851e-44bf-8e7e-bdb22da91f10
Merge develop into force-field-fling PR (conflict resolution)
…ickable Make the home list clickable in chat
Force field fling on teleport
The key commands.island.sethome.click-to-teleport was used in IslandGoCommand, IslandSethomeCommand, IslandDeletehomeCommand, and IslandRenamehomeCommand but was missing from the locale files, causing the raw key to be shown as hover text instead of the translated message. Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com> Agent-Logs-Url: https://github.com/BentoBoxWorld/BentoBox/sessions/2020c8db-752b-4e8e-89fa-385ec0021024
Added translated click-to-teleport hover text to all 22 non-English locale files: cs, de, es, fr, hr, hu, id, it, ja, ko, lv, nl, pl, pt-BR, pt, ro, ru, tr, uk, vi, zh-CN, zh-HK. Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com> Agent-Logs-Url: https://github.com/BentoBoxWorld/BentoBox/sessions/3850d60c-0df2-444f-9ed5-8a9f5e4c3aab
Integrates with Dynmap to show each owned island as a labeled point marker plus an area marker outlining the protected island border. Handles island create, delete, rename, and reset events to keep markers in sync. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add Dynmap hook to display island borders
Display island protected borders as shaded rectangles on BlueMap, matching the DynmapHook's visualization. Also expose public API methods (getBlueMapAPI, getMarkerSet, createMarkerSet) for addons to create custom markers. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add area markers and public API to BlueMapHook
Introduce MapHook abstract class and MapManager facade so addons can create markers, areas, and polygons without depending on a specific map plugin. MapManager fans out calls to all active map hooks (BlueMap, Dynmap, etc.) and silently no-ops when none are installed. Both BlueMapHook and DynmapHook now extend MapHook. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add generic Map API for addon web-map integration
|
@copilot Write some release notes for this release. Here is a draft: Here are the release notes for BentoBox 3.12.0, written for server admins: BentoBox 3.12.0 Release NotesNew FeaturesBlueMap Integration — BentoBox now hooks into BlueMap, displaying island markers on your BlueMap web map automatically. Spawn Protection Setting — A new Expel Fallback Command — You can now configure a fallback command that runs when an expelled player has nowhere to go (no island, no spawn point). Defaults to Wind Charge Protection Flag — A new Blueprint Paste Commands — Blueprint bundles can now trigger commands when they are pasted, opening up automation possibilities on island creation. Blueprint GUI Pagination — The blueprint management GUI now paginates properly, so large blueprint libraries are no longer cramped into a single screen. Admin Max Team Size Command — A new admin command lets you set maximum team size limits on a per-island basis directly in-game. Bug FixesLava Bucket / Obsidian Duplication — Fixed an exploit where players could rapidly scoop obsidian to duplicate lava. A configurable cooldown ( Player XP Not Resetting — Fixed a bug where player XP was not being reset when joining a team or creating a new island in certain scenarios. Sugar Cane, Cocoa Beans & Nether Wart Protection — These crops were incorrectly using the wrong protection flags. They now respect the correct flag settings. Purge Command Crash — Fixed a NullPointerException in the purge unowned islands command when an island world was null. End/Nether Explosion Crash — Fixed a NullPointerException in spawn protection handling for explosions in the End and Nether. Configuration ChangesThree new settings in
|
|
@tastybento I've opened a new pull request, #2886, to work on those changes. Once the pull request is ready, I'll request review from you. |
Remove build number from the Maven artifact version so CI publishes
as 3.12.0-SNAPSHOT instead of 3.12.0-b119-SNAPSHOT. The build number
is still available via ${build.number} for plugin.yml display.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Register map hooks (Dynmap, BlueMap) before addon enable so addons can use MapManager during onEnable(). Previously, map hooks were registered as "late hooks" after addons had already tried to create markers, causing all calls to silently no-op. Island marker population is deferred to BentoBoxReadyEvent since islands aren't loaded at the earlier registration point. Also adds an iconName parameter to addPointMarker() so addons can request specific marker icons (e.g. "sign", "diamond"). Dynmap maps the name to its icon registry with fallback to "default"; BlueMap currently uses its default POI icon. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Lists all 85 built-in Dynmap marker icon names in the addPointMarker Javadoc so addon developers have a quick reference without needing to consult external Dynmap documentation. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Pass isMarkupLabel=true to createMarker so addons can use HTML formatting (e.g. colored owner names) in marker labels. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|



No description provided.