๐ What's new
Level 2.29.0 changes how the death penalty works. Deaths are now tracked per island by Level itself, instead of being read from BentoBox's per-player, per-world death counter at calculation time. This fixes a long-standing problem on servers where players can hold their own island and join a team: inviting someone who had died a lot on their own island dragged the team island's level down by their whole death history, and kicking them restored it. Only deaths that actually happen on an island, by one of its members, count against that island now.
Also in this release: a Traditional Chinese (zh-TW) translation, two panel fixes found by Sonar, and a CI publishing fix.
โจ Highlights
โ๏ธ ๐บ Per-island death tracking (#456)
- A death only counts against an island if it happens in that island's space and the dying player is a member of it. Deaths in other worlds, or while visiting someone else's island, are ignored.
- Joining a team carries nothing over. The new member's previous deaths stay with their own island.
- When a member leaves or is kicked, their deaths on that island are kept as an anonymous count, so an island's handicap never drops just because a frequently-dying member left. Leaving and rejoining does not double count.
- Island reset or deletion clears the island's death data.
- Per-player counts are kept so the admin level report can show who died and how many times, with a separate line for former-member and migrated deaths.
- The game mode's
deaths.countedanddeaths.maxsettings are still honoured.deaths.maxnow caps each member's count on each island. - Existing death counts are migrated once per island, the first time it is calculated, a member dies on it, or a member leaves. The migrated value reproduces exactly what the old formula would have computed at that moment, so island levels do not change on upgrade.
๐ Translations
๐ Fixes
- Opening the island details panel from the top-ten panel's View button without an island threw a NullPointerException instead of showing the "no island" message.
- The block value panel could throw when building an icon for a malformed block key.
- CI: publishing to CurseForge and Hangar now uses the fixed shared workflow (#455).
โ๏ธ Compatibility
โ๏ธ BentoBox API 3.16.0 โ๏ธ Minecraft 1.21.x and 26.1.x โ๏ธ Java 21
๐บ Updating โ important notes
โ๏ธ sumteamdeaths is deprecated. Level now always counts every death that occurred on the island. The setting is only read once, during migration of legacy counts: if true, the migrated count is the sum of all members' old deaths; if false, the owner's. Leave it at whatever value you had when you upgrade so the migration matches your previous levels, then ignore it. The comments on deathpenalty and sumteamdeaths in config.yml have been updated; regenerate the file if you want the new comments.
๐บ BentoBox's death commands and reset settings no longer affect island levels. /[admin] deaths set|add|reset and the team-join-reset / reset-on-new-island game mode settings continue to drive BentoBox's own counter and placeholders, but Level no longer reads that counter after migration. If you were using deaths reset to fix a team's level after an invite, you no longer need to.
๐บ Kicking a member no longer restores the level. Deaths that happened on the island stay with the island. This is intentional. Admins who want to clear an island's death handicap can reset the island.
๐ฅ How to update
- Stop the server
- Back up your BentoBox folder, including the Level database
- Drop the new jar into the addons folder and remove the old one
- Start the server. No manual migration is needed; legacy death counts migrate per island on first use.
Legend
- โ๏ธ config options have been removed, renamed, or added
- ๐บ special attention needed
What's Changed
- โ๏ธ ๐บ Track death handicap per island instead of per world by @tastybento in https://github.com/BentoBoxWorld/Level/pull/456
- Add Traditional Chinese (zh-TW) translation by @qwe664 in https://github.com/BentoBoxWorld/Level/pull/457
- Add missing v2.28.1 translation keys (donation limit messages) by @qwe664 in https://github.com/BentoBoxWorld/Level/pull/458
- ci: bump publish-platforms pin to the multipart-JSON fix by @tastybento in https://github.com/BentoBoxWorld/Level/pull/455
- fix: guard details panel against missing island and malformed value keys by @tastybento
New Contributors
- @qwe664 made their first contribution in https://github.com/BentoBoxWorld/Level/pull/457
Full Changelog: https://github.com/BentoBoxWorld/Level/compare/2.28.1...2.29.0