Tags
Creators
Details
2.26.0
Compatibility
Changes
๐ What's new
Level 2.26.0 makes the donation GUI fully configurable. Server admins can now resize the donate panel from 1 to 6 rows, relocate the four named buttons (INFO / CANCEL / PREVIEW / CONFIRM), swap their icons, and add decorative items โ all by editing a new panels/donation_panel.yml template, exactly the way the value, detail, and top-ten panels already work. The donation grid auto-fills every cell that isn't a border or named button, so changing the layout doesn't require touching any code.
This is otherwise a quiet release โ no API breaks, no locale changes, and no config.yml migrations. The bulk of the diff is internal: SonarCloud cleanup on the new panel code and a long-overdue JUnit 4 โ JUnit 5 migration that turned on 18 previously-skipped tests.
โจ Highlights
โ๏ธ Configurable Donation Panel (#420)
- New
panels/donation_panel.ymltemplate controls panel size, button positions, and icons force-shown: [1,2,3,4]controls how many rows the panel uses (1โ6 supported)- The four named buttons are placed by
data.type:INFO,CANCEL,PREVIEW,CONFIRM - Decorative items (any cell with no recognised
data.type) reserve their slot so donated blocks won't stomp them - If the template is missing or any of the four required buttons isn't present, the panel falls back to the previous hardcoded 4-row layout โ never renders a half-broken UI
- Listener logic (drag, click, validation, item return) is unchanged; only slot resolution is template-driven
๐ Donation Panel Polish
- Decorative template items now actually render in the inventory (previously their slots were reserved but the icon wasn't placed)
- Custom
title:on the donation panel template is now respected force-shownis parsed as a list (consistent with the other panel YAMLs) instead of a scalar- The "could not load template" error log no longer appends the noisy missing-resource exception message
๐งช Internal โ Test Suite Modernisation
LevelsManagerTestandEquationEvaluatorTestmigrated from JUnit 4 to JUnit 5; without the vintage engine on the classpath they had been silently skipped, so 18 tests are now actually running again- All JUnit 5 test classes and methods lowered to default visibility per Sonar S5786
- SonarCloud findings on the new donation panel code addressed (cognitive complexity, parameter count, method references)
โ๏ธ Compatibility
โ๏ธ BentoBox API 3.14.0+ โ๏ธ Minecraft 1.21.x โ๏ธ Java 21
๐บ Updating โ important notes
โ๏ธ Donation panel layout. A new panels/donation_panel.yml is shipped in the addon's data folder on first launch. To customise the layout, edit that file โ the comments inside walk through what each section does. If you don't touch it, the panel renders identically to 2.25.0.
๐ฅ How to update
- Stop the server
- Back up your BentoBox folder
- Drop the new
Level-2.26.0.jarinto the addons folder and remove the old one - Start the server
Legend
- โ๏ธ config options have been removed, renamed, or added
What's Changed
- โ๏ธ feat: make donation panel size and layout configurable by @tastybento in https://github.com/BentoBoxWorld/Level/pull/420
Full Changelog: https://github.com/BentoBoxWorld/Level/compare/2.25.0...2.26.0
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:OWzL9XSJ:ZMgYWauG"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:OWzL9XSJ:ZMgYWauG"
}

