1.6.0 - Stars of the Settings Panel
Description
BentoBox 1.6.0 is a minor release.
This release, whilst not being the biggest so far (the record is held by 1.5.0), brings in a lot of long-awaited changes and tons of bug fixes. We keep "paving the way" towards further improvements, and this update has been a huge milestone we finally reached.
The major and most important change of this update is the complete overhaul of the Settings Panel. We fixed a lot of design flaws that have been pointed out to us by our beloved users (❤️). We will continue improving it over the next updates, but we're fairly confident we did a pretty good job already.
The new layout for the Settings Panel, the Admin Settings Panel and the ability for admins to edit a player's Island Settings are the major changes of this update, and definitely something you want to check out!
Default view of the Settings Panel.
Check out the Island Protection, Flags & Ranks page on our Wiki for detailed information about these new features!
Which Minecraft versions are this release compatible with?
1.13.2, 1.14.2, 1.14.3 and 1.14.4. If you're any outdated 1.14.x versions, please update to 1.14.4 as soon as possible.
We will be dropping 1.13.x support in the next minor update (1.7.x)! Keeping the 1.13.x support is severely restricting our room of maneuver for upcoming features, as well as causing compatibility issues, and it is also preventing us from implementing some features. Now that nearly 70% of the servers are using 1.14.x, we're confident that it's the right way to go.
Support BentoBoxWorld
As a user, you're the one that keeps us thrilled into making continuous updates and improvements to all the BentoBoxWorld products. This is a voluntary and time-consuming yet exciting hobby.
So don't hesitate to join our Discord server and give us a hug, a thank you or even a tip (you can find donation details on the Discord server), that's really much appreciated! ❤️
Developer's zone
We're bringing a new section to BentoBox's changelogs, which aims to provide detailed and comprehensive information to developers so that they can easily update their addons.
Update your gamemode addon
The WorldSettings
interface has been updated and all gamemode addons will need to apply the changes, otherwise, they will remain incompatible with 1.6.0.
- Removed
#isNetherTrees()
. It is recommended that you remove this setting from your configuration file so that users don't get confused. - Added
#isDeathsResetOnNewIsland()
: deaths in the world are reset when the player starts a new island.
The following admin commands classes have been implemented, do not forget to instantiate them in your admin main command's #setup()
:
AdminPurgeCommand
;AdminSettingsCommand
.
Update your addon
All your events should now extend BentoBoxEvent
since PremadeEvent
has been deprecated and removed.
Changelog
Legend
⚠️ deprecated/removed API or API changes that need attention.
Contents
API
- Improved documentation (as always 😁).
- Added
BentoBoxLocale#set(String, String)
. - Added
#getBlueprintBundle()
and#setBlueprintBundle(BlueprintBundle)
forIslandEvent.IslandCreateEvent
andIslandEvent.IslandResetEvent
(#635). ⚠️ RemovedWorldSettings#isNetherTrees()
and related methods (#746, #822).- Added
WorldSettings#isDeathsResetOnNewIsland()
(#817). - Added
Flag#getCooldown()
andFlag.Builder#cooldown(int)
(#754, #821). - Added the following methods in
Island
:#getCommandRanks()
,#setCommandRanks(Map<String, Integer>)
,#getRankCommand(String)
,#setRankCommand(String, int)
(#557, #823). - Added admin purge commands:
AdminPurgeCommand
,AdminPurgeStopCommand
,AdminPurgeUnownedCommand
,AdminPurgeProtectCommand
(#5, #829, #836). - Added
DelayedTeleportCommand
, which extendsCompositeCommand
(#837). - Added
Island#isReserved()
andIsland#setReserved(boolean)
(#749, #850). - Added
Island#getPlayersOnIsland()
andIsland#hasPlayersOnIsland()
(@wellnesscookie, #860, #861). ⚠️ RemovedFlagChangeEvent
(#753), re-added as an abstract class (90fd6a6).- Added
FlagProtectionChangeEvent
,FlagSettingChangeEvent
andFlagWorldSettingChangeEvent
(#753). ⚠️ Fixed divergency in the various#getPermissionPrefix(...)
methods (#870). They now all return the permission with the trailing dot.- Added
AdminSettingsCommand
(#59). ⚠️ Overhauled the PanelAPI: addedTabbedPanel
andTab
, allowed ClickListeners to gather the context of a Panel (#857).- Added
TextVariables#NEXT
. ⚠️ RemovedPremadeEvent
(was deprecated since 1.5.3).⚠️ RemovedNewIsland.Builder#world
(was deprecated since 1.5.0).
Feature / Tweaks
- Blueprints are now prevented from being saved unless they have a bedrock block in them (#777). Note: if a blueprint is loaded and does not have a bedrock block, one is added and a warning given in the console.
- Added some more prevention when deleting islands (#797).
- Improved prevention for overlapping islands issues (#799).
- Improved the Catalog: translatable tags and topics.
- Improved the "success" messages for most commands (#630).
- Increased the minimum time between connections to the GitHubAPI to 60 minutes.
- Added hook with
WorldEdit
: still a work in progress... - Made the
SafeSpotTeleport
and the Visitor Protection no longer switch the player toSPECTATOR
gamemode before teleporting them (#578, #786). Note: this was a remnant of the first iteration of this code, which required us to put the player in a state they wouldn't die while their island is created/deleted. This happened to no longer be useful, due to previous changes to the deletion process. - Improved various processes to run asynchronous (@CustomEntity, #811).
- Added
ELYTRA
(PROTECTION) flag (#386). - Removed the Nether Trees options for gamemode addons: it is now handled by the DimensionalTrees addon (#746, #822).
- Added an option for gamemode addons to reset deaths when the player creates/resets his island (#817).
- PVP-related Flags now require a 60 seconds cooldown to wear off before being toggled again (#754, #821).
- Improved GitHub-related messages so that they're less confusing.
- Made
general.rank-command
config option aPROTECTION
flag (#557, #823). - Added the ability for admins to set the default setting of a protection flag for the whole gamemode worlds (#840).
- Added a configurable teleportation delay (time in seconds players have to stand still before teleportation occurs) to
IslandGoCommand
(#837). - 🔺 Removed Lingering Splash portion for 1.14 (#810). Note: it can only be brought back once we're moving to 1.14-only compatibility.
- Added defensive code around Flag declaration (BentoBoxWorld/AcidIsland#53).
- Added defensive code to avoid removing mobs in non-BentoBox worlds (#847).
- Added
island.clear-radius
config option to set the clear radius of the removal of nearby entities upon teleporting to the island (#819). - Added database type to the
/bentobox version
output. - Added the ability to reserve an empty spot for a player by registering the player there using the
AdminRegisterCommand
(/[admin_command] register <player>
) (#749, #850). - Optimized a few methods in
Island
(@wellnesscookie, #861). - Made Blueprint names lowercase-only (#865).
- Added a new tab in the Settings Panel: world default flags which apply to the player when he's outside an island (#384).
- Reduced code duplication and complexity.
- Added three new Metrics graphs: enabled Hooks, players per server, which displays rough categories of how many servers are small or big, and Flags display mode.
- Added
WITHER_DAMAGE
(WORLD_SETTING) flag (#858). - Made Island deletion unload all not previously loaded chunks after their regeneration.
- The player Settings Panel no longer displays the World Settings in it.
- The Settings Panel now has 3 display modes: basic, advanced and expert (#888).
- Replaced icons of a few flags to better alternatives:
BREAK_BLOCKS
: STONE -> STONE_PICKAXEPLACE_BLOCKS
: GRASS -> OAK_PLANKSITEM_DROP
: BEETROOT_SOUP -> DIAMONDITEM_PICKUP
: BEETROOT_SEEDS -> SUGAR_CANE
- Made
/[player_command] banlist
require the same rank than/[player_command] ban
(#891). - Removed
%[gamemode]_island_spawnpoint%
default gamemode placeholder.
Databases
- Added
SQLite
database support (#570, #791). - Added various new transition databases:
YAML2MONGODB
,JSON2MONGODB
,MONGODB2JSON
,MARIADB2JSON
(@BONNe, #793, #794). - Added
PostgreSQL
database support (#789). - Made
JSON
database use asynchronous saving and deletion (#826, #827). - Rewrote SQL databases code to remove code duplication and prevent further regression on database connections (#831).
Localization
- Added turkish (
tr-TR
) localization (@OverBrave). - Updated latvian (
lv-LV
) localization (@BONNe, #828, #832, #892). - Updated french (
fr-FR
) localization.
Fixes
- Fixed some (a lot, actually) code smells.
- Fixed
IslandEvent.IslandDeleteEvent
not providing the UUID of the player (#790). - Fixed NPC/Villager trading being double-prevented by the
CONTAINER
flag (#788). - Fixed error when executing
/bentobox version
with Nether/End worlds disabled (@BONNe, #792). - Fixed NPE when regenerating chunks if
use-own-generator
setting is set to true (#797). - Fixed our database handlers creating a lot of connections to the databases (#805, #807, #813). It now only opens a single connection.
- Fixed the visitors falling in void being teleported back to the Overworld (#814). They're now teleported to the safest spot in the dimension they're currently in.
- Fixed NPE in
AdminDeleteCommand
. - Fixed issues that could occur when BentoBox tries to paste islands on portal use if
use-own-generator
is set totrue
in the gamemode's configuration (BentoBoxWorld/SkyGrid#18). - Fixed hostile mobs not always being removed on teleportation with
REMOVE_MOBS
flag on (#818). - Fixed island owner being allowed to demote himself (@wellnesscookie, #833, #834, #835).
- Fixed named mobs being removed when teleporting to the island (#847).
- Fixed projectiles (this includes tridents) being removed from the world (puff!) as a prevention to breaking blocks (#846). Note: they no longer are.
- Fixed the
BentoBoxReadyEvent
not being fired on reload (#853). - Fixed admins being able to set a player's rank on an island to visitor or lower (banned, ...) using the admin setrank command (#849).
- Fixed Flag-related event(s) not being fired correctly (#753).
- Fixed NPE when banning an offline player (#872).
- Fixed
ANVIL
flag not protecting damaged anvils (#876). - Fixed compilation issues with Java 11.
- Fixed
StringIndexOutOfBoundsException
with nether or end worlds which have non-standardized names (#877). - Fixed
StringIndexOutOfBoundsException
when executing the language command if a locale's name was empty (#883). - Fixed NPE when using the player
help
command as a console (#886). - Fixed the island range permission not being used when making a new island (#664).
- Fixed island members unable to see the ban list (#891).
Blueprints and Blueprint Bundles
- Fixed the on-the-fly Blueprint conversion still sending warnings although it could safely convert a block (#802).
- Fixed code doing multiple attempts at create a default Blueprint Bundle in case the addon has none, instead of doing it once.
- Added defensive code in BlueprintBundles management to prevent NPEs (#868).
- Fixed concurrency issue when loading blueprints and bundles (#868).
Clean SuperFlat Fixer
- Fixed
CLEAN_SUPER_FLAT
flag mistakenly eating up a lot of resources with checks although it was disabled (@YellowZaki, #782). - Fixed the
CLEAN_SUPER_FLAT
flag still using the deprecated Bukkit-provided chunk regeneration (#720). - Improved accuracy of the
CLEAN_SUPER_FLAT
to avoid issues with SkyGrid-like world generation (BentoBoxWorld/SkyGrid#22). - Made the Clean SuperFlat fixer no longer apply physics to blocks in order to prevent issues with sand or gravel (BentoBoxWorld/SkyGrid#22).
- Fixed the Clean SuperFlat fixer not using populators (BentoBoxWorld/SkyGrid#22).