1.1 - Rune d'Équinoxe
Description
We miss the Sun. So, let's bring in some on your server by download the second official release of BentoBox 1.1!
I'm not going to lie, we've done things big! BentoBox 1.1 brings in overall a better stability, better performances and some new features - nevertheless, that's 90 commits and +1k lines of code. That's why we needed to postpone the update for a week: we needed more time to ensure that what we changed didn't break anything or didn't make things worse than they already were.
Although, I have to admit the overall stability of BentoBox is quite impressive. The modularity we're gambling on is a very tricky thing to handle, and it seems that we're doing it hands down.
Thanks everyone for your support and your help finding bugs!
Update your addons
Official addons will all receive an update in the following hours or days.
Changelog
Legend
⚠️ may break parts of the API.- 🔡 locale files may need to be regenerated or updated.
- ⚙️ config options have been removed, renamed or added.
- 🔺 special attention needed.
Contents
API
- Added
Addon#getState
. - Added
LOADED
inAddon.State
. - Added
#getLoadedAddons()
and#getEnabledAddons()
inAddonsManager
. - Greatly improved the Javadoc by introducing the
@NonNull
and@Nullable
annotations. Note: this is still a WIP, but this has already helped to fix potential NPEs. - Added
IslandBanEvent
andIslandUnbanEvent
: both are cancellable and will result in the ban/unban being cancelled. - Added
Island#setRank(UUID, int)
. - 🔺 Deprecated
#getFlagById(String)
and added#getFlag(String)
inFlagsManager
. - Added
IslandDeletionManager
(see Features.8.). - Fixed tests failing randomly.
- Implemented a FIFO to queue async save requests for YAML and MySQL (see this commit's description).
- Added
Flag#setDefaultSetting(World, boolean)
. - Added option to not paste a schem when creating a new island (
NewIsland
). Note: this may be used by gamemode addons such as SkyGrid. - 🔺 Added ability for gamemode addons to override locale references (#471).
⚠️ 🔺 Added#getPlayerCommand()
and#getAdminCommand()
inGameModeAddon
(#448, #472). Note: all gamemode addons should therefore do the following.- Added
IslandWorldManager#getWorlds()
(#470). - Made
BStats
class public. - Added
BentoBox#getMetrics()
. - Added
BentoBox#getIslandDeletionManager()
. - Added
metrics
to theAddonDescription
(see Features.11): addons need to manually opt-in. ⚠️ Various minor deprecations/changes inAddonDescription
. Note: this won't cause any trouble with addons.- Added
IslandsManager#getIslands()
andPlayersManager#getPlayers()
(#392). ⚠️ AddedIslandsManager#spawnTeleport(World, Player)
and madeIslandsManager#getSpawn(World)
return anOptional
.
Features
- Setting an island as spawn is now logged in its history.
- Making an Island unowned is now logged in its history.
- 🔡 Added
AdminSetspawnCommand
to set an island as the world's spawn (#441). Note: this feature is not perfect at the moment, and we'd be glad to receive some feedback about it. - ⚙️ Added MariaDB 10.2.3+ support (#299, #460, @barpec12).
- 🔺 Implemented asynchronous island deletion (#466, #457, #447). Note: see this commit's description for more information.
- 🔺 Implemented asynchronous saving to
YAML
andMYSQL
databases. - 🔡
IslandTeamInviteAcceptCommand
now requires confirmation and sends a spooky message to players to make sure they don't want to do something bad. Very bad. (#464). - 🔺 Implemented asynchronous super flat cleaning (#431). This should avoid crashes when there's a lot of cleaning to do.
- ⚙️ 🔡 Added
POTION_THROWING
(PROTECTION) flag (#468). - Added islands created count metrics.
- Added addons metrics chart. Note: it is currently unused because it relies on an in progress BStats feature.
- 🔡 Added
IslandSpawnCommand
to teleport the player to the world's island spawn if it is set (#441).
Fixes
- Fixed error handling when loading incompatible addons (#440).
- Fixed
AdminTeleportCommand
having a "doubled" permission prefix in its permission (@BONNe). - Added defensive code in databases (#447).
- Added defensive code against duplicate Island UUIDs (#447).
- Fixed possible infinite loop with
CLEAN_SUPER_FLAT
flag. - Fixed Invincible Visitors GUI not working (#450).
- Fixed
AdminInfoCommand
andAdminTeamSetownerCommand
showing that player (who is member of an island and is not owner of it) doesn't have an island (#452). - Fixed code smells (a lot of them!)
- Fixed possible NPEs.
- Fixed NPE when hiding the clipboard selection.
- Fixed concurrent saving of files to the database (see API.10).
- 🔺 Fixed errors when the database connection info is wrong. Note: if this happens, the plugin will disable itself.
- Fixed Multiverse world registration.
- Fixed ejected players being stuck in
SPECTATOR
mode (#382). Note: see this commit's description for more details.
Upcoming changes
Like BentoBox 1.0, we've got a few things in the code that we started to implement but that we didn't finish yet. This include the island history and the automated ownership transfer (#167).