Releases: BentoBoxWorld/BentoBox
1.0 - The Beginning of a long Journey...
Description
We finally did it. This took us three years, but we did it! BentoBox is finally production-ready. If you don't mind, we still have a long way to go, at your side ❤️.
Now, sit back. Relax. Take a deep breath. And take advantage of this moment of reading to look at the past, observe the present and imagine the future.
Thanks to everyone ❤️.
Update your addons
Official addons will all receive an update in the following hours or days. Thanks to our incredible crew, you might expect some exciting newcomers as well!
About supported server softwares and server versions
Due to the potential data-loss risks or errors that could occur when running BentoBox on an incompatible server software and/or server version, BentoBox will now stop loading in such an environment.
Therefore, you must run BentoBox on a 1.13.2 Spigot server. Not Bukkit/CraftBukkit. Paper and TacoSpigot are officially not supported, but BentoBox should load correctly.
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
⚠️ ReplacedFlagBuilder
withFlag.Builder
. Renamed some of the methods (#409).⚠️ MadeFlags
final so it cannot be extended.⚠️ AddedGameModeAddon
(#415). This is a specific implementation of Addon which creates its own Game world. More information with this video.- Greatly improved the Javadoc!
⚠️ IslandWorldManager
's methods are now usingGameModeAddon
.⚠️ RemovedAdminClearresetsCommand
andAdminClearresetsallCommand
.- Added
set
andreset
subcommands to a newAdminResetCommand
(#353). ⚠️ FixedAddonDescription
to use a valid Builder pattern.- Finished implementation of
Addon#onReload()
. - Added
AdminReloadCommand
for addons to use. - Added
LogEntry
andLogEntryListAdapter
. ⚠️ RenamedIsland#addToBanList(UUID)
toIsland#ban(UUID, UUID)
.⚠️ RenamedIsland#removeFromBanList(UUID)
toIsland#unban(UUID, UUID)
.- Added
ConfigEntry#hidden()
. - Removed
@since
Javadoc tags. They were useless because they were added during the Alpha process.
Features
- 🔺 Implemented ability to have multiple schems (#104, #207, #378, #408). Schems can be named anything, but the partner nether or end worlds must be pre-fixed with
nether-
orend-
in the filename. Additional schems can be added by the admin into the schem folder, or they can be stored in the jar file of the add-on. Both are supported. - 🔡 Added
DISABLE_TELEPORT_WHEN_FALLING
flag (WORLD_SETTING) (#403). It will prevent players from teleporting back to their islands using commands when they're falling into the void. - 🔺 🔡 Added
DISPENSER
,DROPPER
,HOPPER
flags (PROTECTION) (#401). These were previously protected by theCHEST
flag). - 🔺 🔡
/<admin> clearresets
and/<admin> clearresetsall
are replaced with/<admin> resets reset
. Use@a
instead of the player's name to reset the resets counter of all players (#353). - 🔡 Added
/<admin> resets set <player> <resets>
(#353). - 🔺 🔡 ⚙️ Implemented asynchronous schem pasting (#376). Current schem are compatible, however you must update them to the new format (by pasting them and re-saving them) in order to avoid issues such as torches popping, etc... If you were using the default ones, you just need to delete the schems folder and restart your server.
- 🔡 ⚙️ Added ban limit (#423).
- 🔡 Added
ITEM_FRAME
flag (PROTECTION) (#391). /bentobox reload
now reloads Addons that support reloading (#370).- 🔺 🔡 ⚙️ Removed
general.allow-obsidian-scooping
and made it a WORLD_SETTING flagOBSIDIAN_SCOOPING
(#432).
Tweaks
- 🔺 🔡 Renamed
CHEST
flag toCONTAINER
(#402). Players will need to update the value as it will be resetted to default. - ⚙️ Removed
general.starting-money
from the config (#432). - Added defensive code in JSON-based databases.
- Improved some config comments.
- Metrics: added islands count.
- ⚙️ Removed
island.custom-ranks
from the config (#432). - Made
general.rank-command
experimental in the config. - 🔡 Improved the "successfully loaded" message in the console.
Bug fixes
- Fixed
/bentobox reload
not reloading correctly the locales from addons (#417). - Fixed code smells (lots of them!).
- Fixed commands being registered with their main label as fallbackPrefix. E.g.:
/is
from BSkyBlock was registered as/island:is
instead of/bskyblock:is
. - Fixed
IslandCreatedEvent
/IslandResettedEvent
being fired too early.
Work in progress
This release contains some features that are still being worked on. However, we couldn't remove them safely from the production branch, as some features relies on some of these changes. Therefore, we disabled them for this release so they won't do anything bad. Once they'll be fully implemented, we'll let you know!
- Automated island ownership transfer (#167).
- Island logs / Island history / Island timeline.
Alpha 13 - Santa Claus is coming to town!
Description
We're obviously late - but well, where's the fun of developing a plugin on our free time if we had to sleep one hour a day to keep up with daily releases? We know there are some new Skyblock plugins that came out recently. And that they actually catched up in less than a month what we did in two years. But we're working with ❤️, and you'll see the difference!
This pre-release might be the last one, actually. A lot of work still has to be done, especially on addons and user experience, but the metrics we gather talk for themselves: 70 servers are using BentoBox while we're still in alpha. Even though that's nothing compared to the 2000+ servers using ASkyBlock and the old AcidIsland, that's impressive. Thanks!
Today, we've got some crunchy new features, tweaks and bug fixes that'll make everyone's life easier 🙂.
Update your addons
Official addons will all receive an update in the following days, in order to use all the new features that got added in Alpha 12 & 13.
Changelog
Legend
⚠️ may break parts of the API.- 🚧 classes or methods have been deprecated.
- 🔡 locale files may need to be regenerated or updated.
- ⚙️ config options have been removed, renamed or added.
- 🔺 special attention needed.
Contents
- API
- Plugins will now be able to request data from addons using
Addon#request(String, Map<String, Object>
(#400 @HyKurtis). Note that this is still a WIP - addons need to be updated to use this new system. But we sincerely hope it will make creating external plugins requesting addon's data a lot easier! LocalesManager
: added#getOrDefault(User, String, String)
and#getOrDefault(String, String)
.⚠️ Removed deprecated methods inIsland
.
- Features
- 🔡 Added
NAME_TAG
flag (#390). - 🔡 🔺 Splited
PORTAL
flag intoNETHER_PORTAL
andEND_PORTAL
(#388).NETHER_PORTAL
andEND_PORTAL
will be using the default protection values, notPORTAL
's one, so please make sure to tell your players that they may need to change these settings on their island. - 🔡 🔺 Added support for translatable "starting" sign (#372). The sign must have
[start]
as its first line.
- Tweaks
- Players trying to go through an End portal while they are not allowed to will receive the "Island protected" message. It was previously silently denying the action.
- Added some metrics related to the database type and the default language.
- Added website to
plugin.yml
. - BentoBox now only tries to enable/disable addons if there is at least one addon loaded.
- Bug fixes
Alpha 12 - It's freezing cold outside!
Description
Winter is coming. Unless you live in the southern hemisphere. In that case, would you consider sending us some of the Sun back? - Thanks.
This pre-release fixes bugs and introduces a bunch of tweaks and features
Addons will be updated on December, 16th.
In order to fully take advantage of all the features that got added in this version, you will have to update your addons (especially BSkyBlock / AcidIsland) once we release an update for both of them.
Changelog
Legend
⚠️ may break parts of the API.- 🚧 classes or methods have been deprecated.
- 🔡 locale files may need to be regenerated or updated.
- ⚙️ config options have been removed, renamed or added.
Contents
- API
- 🔡 Added
AdminDeathsCommand
,AdminDeathsSetCommand
andAdminDeathsResetCommand
to allow admins to set/reset death count of players (#76). - Fixed code smells.
- 🔡 Added
IslandInfoCommand
with the following aliases:info, who
(#361). This is basically a copy/paste fromAdminInfoCommand
. - 🚧 Deprecated
Island#showInfo(BentoBox, User, World)
andIsland#showMembers(BentoBox, User, World)
. They are replaced with equivalents that only requires an User as parameter:Island#showInfo(User)
andIsland#showMembers(User)
. - Added
Addon#onReload()
(#370). It currently has no effect. - Improved various Javadoc bits.
- Features
- 🔡 Added
FROST_WALKER
protection flag (#183). Frosted ice generation was previously protected by thePLACE_BLOCK
flag. - 🔡 Coops are now removed of the island when all island members are logged out (#335).
- 🔡 Added
EXPERIENCE_PICKUP
protection flag (#217).
- Tweaks
- Made the "tried to paste schem" error less confusing.
- 🔡 Added
commands.help.syntax-no-parameters
to avoid layout inconsistencies in the command help layout (#379). - Language names in the Language Panel are now longer italicized.
- 🔡
World Settings
flags that are using a "sub-panel" now have their name yellow (configurable in localization files) (#383). - 🔡 Added colors to the Settings Panel's categories (configurable in localization files as well) (#383).
- Upgraded bStats dependency to
1.4
. I don't really know what this brings, but keeping things up to date is fine!
- Bug fixes
- Fixed animals which could be bred or fed to grow up while
BREEDING
was not allowed (#366). - Fixed
AdminVersionCommand
returning nothing (#374). It now displays the addon's version. - 🔡 Fixed some multi-line localization colors (#383 (comment)).
- 🔡 Fixed some formatting in all localization files.
Alpha 11 - The "We're LAAAATE" update
Description
This pre-release brings some bug fixes, although it is mainly focused on improving the consistency in the code.
When will BentoBox be released ?
I originally planned to release BentoBox (1.0) by the end of November, but I have to admit we're late. Therefore, the new goal is to release BentoBox by the end of December!
Changelog
How to read it
Each change/tweak/bug fix is listed in the corresponding category.
If a change is likely to do something that needs the user to keep a close eye on, then it is labelled with an icon.
⚠️ may break parts of the API.- 🚧 classes or methods have been deprecated.
- 🔡 locale files may need to be regenerated or updated.
- ⚙️ config options have been removed, renamed or added.
Contents
- API
⚠️ Removed previously deprecated methods and classes (check Alpha 9's changelog).- Fixed some code smells.
- Replaced all the code referencing to team leader. This was a long-time misleading conception (it comes from ASkyBlock): island owners were sometimes known as "team leaders", sometimes "leaders" and sometimes "owners". As of today, it will be "owner" everywhere.
- Added
IslandsManager#getIslandCount(World)
. - Added some defensive code in
User#getPermissionValue(...)
to prevent bugs in case the providedpermissionPrefix
was ending with a dot.
- Features
- ⚙️ Finished implementation of
max-islands
config option for Gamemode addons. No need to update your addons, as this was an unfinished feature that was already implemented.
- Tweaks
- 🔡 Removed
en-GB
andfr-FR
locales: they were outdated. An updated French locale is on the way. - 🔡 Updated all locales to match the consistency of the code regarding "island owners". You must regenerate your locale files as the previous ones will be out of sync!
- Bug fixes
Alpha 10 - Bug fixes
Description
This pre-release fixes bugs that were brought by some changes in Alpha 9.
Changelog
How to read it
Each change/tweak/bug fix is listed in the corresponding category.
If a change is likely to do something that needs the user to keep a close eye on, then it is labelled with an icon.
⚠️ may break parts of the API.- 🚧 classes or methods have been deprecated.
- 🔠 locale files may need to be regenerated or updated.
- ⚙️ config options have been removed, renamed or added.
Contents
- API
- Provided some debug for developpers using the Database API.
- Bug fixes
- Fixed
BREEDING
not protecting turtle breeding (#348). - Fixed lowercased or mixed-case enum entries in database not being read when loading databases (BentoBoxWorld/Challenges#33).
- Fixed the Yaml database no longer working properly as of Alpha 9.
Alpha 9 - Running late...
Description
This pre-release brings in bug fixes and deprecates some methods that needed to be renamed to ensure consistency.
You won't need to update your addons alongside this release.
We're running some delay with our original planning. Alpha 9 should have been the last alpha before the actual 1.0 release, however that logically won't be the case.
Changelog
How to read it
Each change/tweak/bug fix is listed in the corresponding category.
If a change is likely to do something that needs the user to keep a close eye on, then it is labelled with an icon.
⚠️ may break parts of the API.- 🚧 classes or methods have been deprecated.
- 🔠 locale files may need to be regenerated or updated.
- ⚙️ config options have been removed, renamed or added.
Contents
- API
- Improved some bits of Javadoc.
- Added
LocalesManager#get(String)
. - 🚧 Deprecated
#getTeamLeader(...)
methods inCompositeCommand
,IslandCache
andIslandsManager
: they are renamed to#getOwner(...)
. - Added a generic
IslandEvent
that provides theReason
why it was called (#346). ⚠️ 🚧 Moved addon exceptions toworld.bentobox.bentobox.api.addons.exceptions
; older ones got deprecated.- Added a generic event to expose addon info via K,V pairs (#352 (comment)).
- Features
- ⚙️ 🔠 Added
FISH_SCOOPING
flag to prevent players from scooping fishes using a water bucket (#349). - Added pagination to the Settings panel (WIP).
- ⚙️ 🔠 Added
TURTLE_EGGS
flag to prevent players from crushing turtle eggs (#348).
- Tweaks
- 🔠 Replaced
%bsb_plugin_name%
in all locale files byBentoBox
. - 🔠 Removed
de-DE
locale: it was outdated. - 🔠 Updated
zh-CN
locale (@CNAmira). - Flags in the Settings panel are now sorted alphabetically based on the player's locale (WIP).
- Bug fixes
- Fixed
PVP
not protecting players from being set to fire using flame arrows (#336). - Cooped players now lose the coop when they logout or on server shutdown (#335).
- Fixed
ARMOR_STAND
not protecting players from moving armor stands using fishing rods (#350). - Fixed error when tab-completing some commands with no island (#358).
Alpha 8 - Provision of patches
Description
This pre-release is intended to fix bugs. A few new features were also added. And there is not a single API breaking change 🙂.
You won't need to update your addons alongside this release.
Placeholders
Although Placeholders integration is implemented in BentoBox, Addons are currently not registering their own placeholders. This is due to a few incoming changes, which is keeping us from adding them.
Changelog
How to read it
Each change/tweak/bug fix is listed in the corresponding category.
If a change is likely to do something that needs the user to keep a close eye on, then it is labelled with an icon.
- 🔠 - locale files may need to be regenerated or updated.
- ⚙️ - config options have been removed, renamed or added.
Contents
- API
- Improved Javadoc.
- Slight optimizations in PlaceholdersManager.
- Added
MultiverseCoreHook
. - Added
CycleClick(String, int, int)
constructor (#332).
- Features
- ⚙️ 🔠 Added
COARSE_DIRT_TILLING
inWORLD_SETTING
flags. This helps avoid players tilling coarse dirt using a hoe to obtain dirt (#337).
- Tweaks
LOCK
flag can now only be applied to theMEMBER
rank at maximum. This means that island owners can no longer lock their island to the island members or island sub-owners: they can still do so for trusted, cooped and visitors (#332).- Player file is now preventively saved in the database after they create an island.
- Bug fixes
- Fixed obsidian scooping replacing the whole bucket stack with lava buckets (#338).
- Fixed errors that could occur when adding island to the grid (#326). Also introduced some defensive code there.
- Fixed errors spamming console when teleporting to non-BentoBox worlds (#310).
- Fixed protection checks not correctly taking into account standard Nether and End (#331).
- Fixed teleporting back from standard Nether to island.
- Fixed island members dying when joining an island locked to members (#332).
- Fixed a few bugs with protection (#336):
- Placing boats is now prevented by
PLACE_BLOCKS
; - Using bone meal is now prevented by
PLACE_BLOCKS
; - Fixed interaction with Shulker Boxes (
CHEST
); - Flower pots interaction is now prevented by
CHEST
; - Using name tags is now prevented by
PLACE_BLOCKS
; - Hurting pufferfish is now prevented by
HURT_MONSTERS
; - Hurting other types of fish is now prevented by
HURT_ANIMALS
;
- Fixed the
ENDER_CHEST
flag not using the Notifier.
Alpha 7 - The very small super tiny update that fixes (a) huge bad bug(s)
Description
This pre-release fixes a major bug with Placeholders implementation (you basically couldn't run BentoBox if you didn't have PlaceholderAPI in the plugins folder).
There is no need to update your addons alongside this release.
Changelog
How to read it
Each change/tweak/bug fix is listed in the corresponding category.
If a change is likely to do something that needs the user to keep a close eye on, then it is labelled with an icon.
Here is a list of the labels:
⚠️ - the change is breaking the API and/or deprecate some parts of it.
Contents
- API
⚠️ RenamedAbstractFlagListener
toFlagListener
.⚠️ Moved allPlaceholderAPIHook
's inner classes to their own classes in the\api\placeholders\placeholderapi
folder.
- Bug fixes
- Fixed BentoBox not launching when PlaceholderAPI wasn't installed on the server.
- Fixed double chests pasting in certain orientations that could cause an ArrayOutOfBoundsException (#326).
Alpha 6 - The protection killer
Description
This pre-release fixes a major bug with protection and also implements PlaceholderAPI integration. Addons now have to register their own placeholders. If you've got any idea of placeholders you'd like us to add, feel free to post them here : #322.
There is no need to update your addons alongside this release.
The Challenges addon still didn't receive an update, is it safe to keep it?
Yes, it is. Some of its minor features may no longer work, but the addon is globally working fine.
Changelog
How to read it
Each change/tweak/bug fix is listed in the corresponding category.
If a change is likely to do something that needs the user to keep a close eye on, then it is labelled with an icon.
Here is a list of the labels:
⚠️ - the change is breaking the API and/or deprecate some parts of it. It theorically should only concern addons, so make sure to update them as well!
Contents
- API
- Added
PlaceholdersManager
. You can get it usingBentoBox#getPlaceholdersManager()
. ⚠️ RemovedAbstractFlagListener#getWhy()
- it was internally not used and was most likely not used by addons.
- Features
- Implemented PlaceholderAPI integration (#322).
- Bug fixes
- Fixed protection listeners not being registered in Bukkit as the plugin was no longer considered as "loaded" at the time the registration was taking place.
Alpha 5 - The (not so) Spooky update!
Description
This pre-release fixes a few bugs and brings us the ability to hook into plugins, such as Vault and soon PlaceholderAPI! This version also introduces a lot of API breaking changes. They are necessary to provide you the nicest API when we will release 1.0 (before 2019).
Update very carefully !
A lot of config options changed, but please take a closer look to the database type:
- If you were using
FLATFILE
, please change it toYAML
. - If you were using
MONGO
, please change it toMONGODB
.
"The Flattening", part 2
Level and WelcomeWarpSigns got updated and received their "Flattening update". They are now both available on CodeMC's Maven repository.
1.13.2
There was no significant change to Spigot's API between 1.13.1 and 1.13.2, so it's now safe to say that BentoBox officially supports 1.13.2 !
Update your addons !
Each addon you're using must be updated, otherwise they just won't launch (yes, I made it so that it won't spam your console with a huge load of errors ❤️).
Where is the Challenges addon ?
Ahum... Well, I didn't have the time to update this one yet. So, as we said in 2016, keep calm and wait for Poslovitch to fix that.
Changelog
How to read it
Each change/tweak/bug fix is listed in the corresponding category.
If a change is likely to do something that needs the user to keep a close eye on, then it is labelled with an icon.
Here is a list of the labels:
⚠️ - the change is breaking the API and/or deprecate some parts of it. It theorically should only concern addons, so make sure to update them as well!- 🔠 - locale files may need to be regenerated or updated.
- ⚙️ - config options have been removed, renamed or added.
Contents
- API
- Added/fixed some Javadoc in a few classes.
⚠️ IslandsManager
: renamed#getCount()
to#getIslandCount()
; renamed#makeLeader(...)
methods to#setOwner(...)
.- Added
Addon#getPermissionPrefix()
: it is a method that returns the permission prefix automagically generated from the addon's name. ⚠️ RemovedCompositeCommand#setPermissionPrefix(String)
: it is now inherited from the Addon's.⚠️ RenamedAdminTeamMakeLeaderCommand
toAdminTeamSetownerCommand
.⚠️ RenamedTeamEvent.TeamMakeLeaderEvent
toTeamEvent.TeamSetownerEvent
.⚠️ Lowercased some command class names to better fit how they are actually working in game :AdminClearresetsallCommand
,AdminClearresetsCommand
,AdminGetrankCommand
,AdminSetrankCommand
.⚠️ ReplacedAddon#setEnabled(boolean)
byAddon#setState(Addon.State)
.- Removed
YmlConfiguration
andYmlCommentParser
as they weren't used. AddonsManager
: removed#loadAddonsFromFile()
, renamed#setLoader(...)
to#setLoaders(...)
.⚠️ ⚙️DatabaseSetup.DatabaseType
: renamedMONGO
toMONGODB
.⚠️ DatabaseConnector
: removed#loadYamlFile(...)
and#saveYamlFile(...)
as they weren't generic to all database connectors.- Added
AbstractJSONDatabaseHandler<T>
. ⚠️ Made all DatabaseHandlers' and DatabaseConnectors' constructors package-private: these shouldn't have been used by any external plugin/addon.⚠️ Moved TypeAdapters indatabase/json/adapters
package.⚠️ MovedDATABASE_FOLDER_NAME
toAbstractDatabaseHandler<T>
.⚠️ ⚙️ RenamedFLATFILE
database type (and related files) toYAML
.- Fixed some code smells.
- Implemented the Hooks API:
Hook
andHooksManager
. - Implemented Vault integration:
VaultHook
. ⚠️ RemovedAddonInterface
and put its methods inAddon
.
- Features
- Implemented Vault integration: money reset on island join/leave should now be working.
- Tweaks
- Changed the command
/is team setleader <player>
to/is team setowner <player>
. - ⚙️
general.database.type
: renamedFLATFILE
toYAML
, addedJSON
and renamedMONGO
toMONGODB
. - ⚙️ Renamed
island.customranks
toisland.custom-ranks
and made it experimental (Spooky!). - Added some safety checks to the config loading: some options will now be using their default value if the one in the configuration is invalid, instead of throwing ugly stacktraces.
- Bug fixes
- 🔠 Fixed some entries in the
en-US
locale being invalid. - Fixed island protection range not being updated after a login if there was a permission change (#256).
- Fixed outdated addons causing errors in console when loading (#281).
- Fixed the
AddonsManager
disabling not-enabled addons. - Fixed the
[label]
text variable being replaced by "invite" in the invite notification (#315). - Fixed island members sometimes not being recognized and therefore considered as visitors on their own island (#318).
- Fixed
[version]
text variable in config comments always being replaced by BentoBox's version instead of the addon's (#312).