Releases: BentoBoxWorld/BentoBox
1.9.0 - Snowflakes & Cornflakes
Description
BentoBox 1.9.0 is a major release. You will have to update your Gamemode Addons alongside this update.
What a slaughter! So many bugs being decapitated, what a delightful show! That's why there's so many bug heads hanging around! What a... uh oh. Wait, Halloween's already over? And November too? Really?!
Times are changing, and so BentoBox does. Indeed, BentoBox is launching on SpigotMC on Saturday 7th December at 6 PM GMT, after a 21-month-long development. As snow starts falling down around the North Hemisphere, things are getting serious. Take advantage of the various performance improvements we made in this release, as well as of the UX changes!
Releasing BentoBox on SpigotMC has been the long-term goal so far. Now that it is close, we are currently reviewing our workflow and next goals to take into account the new needs the servers have nowadays. We're eager to see you again in 2020!
Which Minecraft versions are compatible with this release?
This release is compiled against Spigot 1.14.4 and as such should be considered stable on 1.14.4 only.
However, due to the popular demand, we agreed to improve the backward compatibility for 1.13.2. Therefore, BentoBox 1.9.0 should be able to run on 1.13.2 with minor to no inconveniences.
Using 1.14.4 and having some issues with performances?
Tweaking config options...
BentoBox 1.6.0 introduced config options that are useful to tweak performance issues on island creation or deletion.
island.paste-speed
should be reduced to64
if you are using the default Blueprints,128
if you are using bigger ones. In accordance with #1051, the impact on performances can be significant, while the extra time required to create the islands is not felt by the player to be inconvenient.island.delete-speed
should be kept as small as possible, yet it has been changed in this release from being per ticks to per seconds. Take that into account!
Using PaperSpigot?
This update introduces support of PaperLib. Basically, if you're using PaperSpigot, nearly all resource-intensive operations will be run asynchronously. This will keep your server's performances high, but might lengthen the time taken by some processes.
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”. And if you feel that extra-generosity rushing in, tip us on PayPal or become a sponsor of tastybento, that's really much appreciated! ❤️ (Donors get a special rank on our Discord server!)
Changelog
Legend
⚠️ deprecated/removed API.- 🔺 need special attention.
- ❗️ critical bug.
Contents
API
- Added ability to create Player Heads items with custom names (@YellowZaki, #1007).
- Improved error handling when errors occur while disabling addons (#1018).
- Added
isCreateIslandOnFirstLoginEnabled()
,#getCreateIslandOnFirstLoginDelay()
,#isCreateIslandOnFirstLoginAbortOnLogout()
inWorldSettings
andIslandWorldManager
(#889). - Added various wrapper methods in
Util
forPaperLib
methods (#1026). - Added
AdminBlueprintDeleteCommand
(#1048). - Added
BlueprintsManager#deleteBlueprint(GameModeAddon, String)
(#1048).
Feature / Tweaks
- Improved user feedback when creating an island (#996). Most notably, it now provides an estimated time for the pasting process.
- Removed the no longer needed "allow-nether" and "allow-end" warnings (#977).
- Added a Credits GUI for addons and BentoBox (#993).
- Improved layout of the
/[playercmd] team
command (#997). - Added "last joined time" in the
/[playercmd] team
command (#997). - Added a "reset all settings to defaults" in the Player Settings Panel (
/[playercmd] settings
) (#1011). - Improved comments in
config.yml
. - 🔺 Placing and breaking item frames and armor stands is now handled by their respective flags (#1023).
- Added config options to automatically create island on first login (#889).
- Implemented
PaperLib
support (#1026): asynchronous teleportation, asynchronous chunk loading, - 🔺 Changed
island.delete-speed
to be per second instead of per tick. - Excluded spawn islands from
OFFLINE_REDSTONE
flag (#1031). - Implemented an on-the-fly sanitizer for Blueprint names to prevent Blueprints from breaking if manually edited.
- 🔺 Enabled operation on 1.13.2 servers.
- Reduced default paste speed in config from 128 to 64 blocks/tick.
Localization
- Improved protection messages in
en-US
(@N0tMyFaultOG, #1000, #1001). - Created Romanian (
ro
) translation. - Created Indonesian (
id
) translation. - Updated Japanese (
ja
) translation (@jstnf, @mozzaf1ato, #1040). - 🔺 Allowed a space to be placed after a color code in locale files (#1044, #1045).
Fixes
- Fixed the
/bentobox version
being available to all players (@N0tMyFaultOG, #1002, #1004). - Fixed
SQLite
not failing silently when trying to delete an object that is not in the database (#1010). - Fixed NPE when pasting banners that have null patterns (#1016).
- Fixed
commands.island.expel.cannot-expel-member
showing text reference. - Fixed Pillager, Skeleton horses, Wandering Trader, Cats and Zombies spawning regardless of the Animal/Monster spawning flag (#1020).
- Fixed code smells.
- Fixed color codes not being translated correctly for Blueprint Bundle descriptions (BentoBoxWorld/BSkyBlock#213).
- Fixed island team members who are banned from another island not being teleported to their island (#1017).
- Fixed
NAME_TAG
protection for Villagers (#1012). - Fixed
ITEM_FRAME
protection (#1023). - Fixed
PVP
bypass using fireworks with crossbows (#1027). - Fixed Wandering Trader not being protected as a Villager (#1029).
- Fixed player's homes not being cleared when resetting island.
- Fixed waterlogged blocks being able to bypass
LIQUIDS_FLOWING_OUT
flag (#1034). - Fixed liquids flowing into adjacent islands when islands abut others (#1034).
- Fixed 1.14.4-induced issue with portal teleportation (#1036).
- Fixed errors when loading Blueprints that contain a Material which does not exist on the server version (#1037).
- ❗️ Fixed island range permissions being able to set the island protection greater than the island distance (#1047).
- Fixed
COMMAND_RANKS
flag still requiring the admin permission to be accessed (#1050).
1.8.0 - Bentoctober Update
Description
BentoBox 1.8.0 is a major release. You will have to update your Gamemode Addons alongside this update.
We kept improving the overall user experience, by implementing various new features, including the automated localization updater: never ever shall those pesky text references (e.g. general.success
) require you to delete the locales folder because localizations will be automatically updated upon restarting the server, if need be! Additional admin commands for deaths and resets management should also ease your life and help you make a stunning customized game server.
Which Minecraft versions are compatible with this release?
This release is compiled against Spigot 1.14.4 and as such should be considered as stable on 1.14.4 only. However, 1.13.2 should still work (although unofficially supported).
Using 1.14.4 and having some issues with performances?
Here are various config options you should have a look at if you're updating from 1.6.x:
- Reduce
island.paste-speed
in BentoBox's config to128
if you're using default Blueprints,256
if you're using bigger, custom ones. - Keep
island.delete-speed
as small as possible (the default value is1
, but in some specific circumstances you might need to increase this a bit). In order to regenerate chunks, we need to load them, and that's what causes the performance issues!
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. And if you feel that extra-generosity rushing in, tip us on PayPal, that's really much appreciated! ❤️ Donors get a special rank on our Discord server!
Changelog
Legend
⚠️ deprecated/removed API.- 🔺 need special attention.
- ❗️ critical bug.
Contents
API
- Added
Addon#allLoaded()
(#940). Addons should override it if they need to do things after everything has been loaded. - 🔺 Improved addon getters (@BONNe, #939).
CompositeCommand#getAddon()
andAddonsManager#getAddonByName()
no longer require you to cast the instance. - Added
#getOnLeaveCommands()
and#getOnJoinCommands()
inWorldSettings
andIslandWorldManager
(#704). - Added
AdminDeathsAddCommand
andAdminDeathsRemoveCommand
(#950). - Added
AdminResetsAddCommand
andAdminResetsRemoveCommand
. - Added
#getFallingBannedCommands()
inWorldSettings
andIslandWorldManager
(#863). - Added
#isOnJoinResetHealth()
,#isOnJoinResetHunger()
,#isOnJoinResetXP()
,#isOnLeaveResetHealth()
,#isOnLeaveResetHunger()
,#isOnLeaveResetXP()
inWorldSettings
andIslandWorldManager
(#958). - Created
NewIslandLocationStrategy
interface and addedNewIsland.Builder#locationStrategy(NewIslandLocationStrategy)
in order to allow developers to create and apply their own island "placement" options (@leonardochaia, #983, #984). - Made the
BentoBoxReadyEvent
event be fired after all blueprints are loaded (#985). - Added prevention code in
IslandWorldManager
's methods to provide a default value instead of NPEs. ⚠️ Removed the long-deprecatedTNT
flag fromFlags
. It was deprecated as of 1.5.0.
Feature / Tweaks
- Improved Multiverse world registration.
- Sped up the safe spot search process when teleporting to the Nether or the End (#952).
- Implemented ability to run configurable commands upon creating/joining or resetting/leaving an island (#704).
- Implemented four new admin commands (#950):
/[admincmd] deaths add <player> <amount>
/[admincmd] deaths remove <player> <amount>
/[admincmd] resets add <player> <amount>
/[admincmd] resets remove <player> <amount>
- Improved success messages for the following commands:
/[admincmd] resets set
and/[admincmd] resets reset
. - Added ability to reset one island flag to default for all islands using
/[admincmd] resetflags
(#930). - 🔺 Improved the
REMOVE_MOBS
flag behaviour (#967): mobs around the player will no longer be removed if the teleportation is caused by a Chorus Fruit, an Ender Pearl or the Spectator gamemode. It also won't remove mobs if the teleport distance is less than the mob removal range. This is to avoid potential exploit of this feature by players. - Spread the backup database saving to avoid lag (#976).
- Added
island.confirmation.invites
in theconfig.yml
(#800, #971): if set totrue
, trust and coop invitations will have to be accepted by the recipient. - Implemented ability to specify whether a player's health, hunger or XP should be reset upon joining/creating or leaving/resetting an island (#958).
- Added
CAKE
(PROTECTION) flag (@N0tMyFaultOG, #986, #987). Note: the cake is a lie.
Blueprints
- Added placeholders parsing in entities' names (#898).
- Improved just-in-time Nether/End blueprint pasting by pasting the nether or end Blueprints of the default Blueprint Bundle if custom ones are missing or not specified (#943).
- Added support for Banner patterns (#961).
- Made Blueprints be named with a lowercased English-localized name.
Localization
- Updated
lv
translation (@BONNe, #935). - Updated
zh-CN
translation (#955). - Implemented automated localization files updates (#539, #960): any missing message will be added automatically into the files, so that the occurrences of text references showing up in messages are mitigated.
Fixes
- ❗️ Fixed BentoBox not enabling correctly if error occurred when enabling Hooks (#938).
- Fixed vanilla Nether/End spawns protection (#927).
- Fixed the island owner seeing the
commands.island.reset.kicked-from-island
message. - Fixed
HeadGetter
overwriting the item amount (@BONNe, #941). - Fixed NPE when trying to paste just-in-time a nether or end Blueprint which does not exist or is not specified in the Blueprint Bundle (#943).
- ❗️ Fixed BentoBox preventing Wither block damage in non-BentoBox worlds (#954)
- Fixed NPEs occurring when requesting a placeholder with a null User (BentoBoxWorld/Level#86).
- Fixed
ISLAND_RESPAWN
flag not respawning all the players on their island. - Fixed deaths in the Nether or the End not teleporting back to the Overworld island.
- Fixed Sweet Berry Bushes not being protected (#948).
- Prevented
null
icons forPanelItem
, thus fixing NPEs with some addons' GUIs (@BONNe, BentoBoxWorld/BSkyBlock#203, #957). - Fixed
[gamemode].admin.noban
,[gamemode].mod.noexpel
and[gamemode].mod.bypassexpel
permissions (@BONNe, #956). - Fixed NPEs when connecting to the GitHub API.
- Fixed
AdminResetsSetCommand
not allowing to set the resets to 0. - Fixed ConcurrentModificationException occurring when saving the database (#968).
- Fixed player's home locations not being cleared when an admin kicked him out of an island (#980).
- Fixed the
/[playercmd] near
command not working for team members (#981). - Fixed registering a player to the spawn island not changing its status as a spawn island (#991).
- Improved error handling when establishing the connection to a MongoDB database.
- Fixed the
DYE
(PROTECTION) flag not protecting signs from being dyed on most recent 1.14 versions (#999).
1.7.0 - Autumn Praeludium
Description
BentoBox 1.7.0 is a minor release. It brings improvements as well as bug fixes. As always, we're also working hard on giving addons as much creative liberty as possible, so we also granted them access to a few new useful methods in our API!
The most notable changes in this update are without any doubts the huge background work we did with performance issues you can encounter on 1.14.4, yet that's only to say the least! Players will find themselves granted with a few quality of life improvements, including the no-longer need to kick all players from the island before resetting it - it's now done automatically!
Which Minecraft versions is this release compatible with?
This release is the first one entirely compiled against Spigot 1.14.4. 1.13.2 compatibility will be progressively reduced until incompatibility is occuring.
Using 1.14.4 and having some issues with performances?
This release brings a few changes you should have a look at if you're updating from 1.6.x:
- Reduce
island.paste-speed
in BentoBox's config to128
if you're using default Blueprints,256
if you're using bigger, custom ones. - Keep
island.delete-speed
as small as possible (the default value is1
, but in some specific circumstances you might need to increase this a bit). In order to regenerate chunks, we need to load them, and that's what causes the performance issues!
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! ❤️
Changelog
Legend
⚠️ deprecated/removed API or API changes that need attention.- 🔺 need special attention.
Contents
API
- Added
TabbedPanelBuilder#hideIfEmpty()
and#isHideIfEmpty()
(#896). - Added various new Panel types:
Panel.Type
-#INVENTORY
,#HOOPER
,#DROPPER
(@BONNe, #917). - Added the ability to have non-country specific localizations.
- Added nullability annotations in
IslandCache
,IslandsManager
andUtil
. - Added
IslandsManager#getIslands(World)
andIslandCache#getIslands(World)
. - Added
IslandsManager#nameExists(World, String)
. - Added
IslandResetCommand(CompositeCommand, boolean noPaste)
constructor for gamemodes that do not need pasting of a blueprint.
Feature / Tweaks
- 🔺 Legacy placeholders (those starting with
bentobox_[gamemode]
) are no longer supported. Use the new ones instead. - Disabled physics calculation when regenerating chunks (@BONNe, #913): this should help with performances a bit.
- Improved logging for the
CLEAN_SUPER_FLAT
flag. - Improved
SafeSpotTeleport
to limit chunks scanned per tick (BentoBoxWorld/SkyGrid#24). - Improved various config comments.
- Added
island.name.uniqueness
config option to force island names to be unique across the gamemode (#899). - Added
SPAWNER_SPAWN_EGGS
(WORLD_SETTING) flag (#768). - 🔺 Resetting the island now automatically kicks all island members (#922).
- Clipboard now gets shown after pasting a Blueprint (#581).
- Added
island.delete-speed
option in config to reduce the chunk regeneration speed. - Made the "owner kicked you from the island" messages more precise (#923): they tell the player from which gamemode they were kicked.
- Decreased default value for
island.paste-speed
from1000
blocks/tick to128
blocks/tick: this new value is more suitable to 1.14+ servers, on which chunk loading causes a lot of performance issues.
Localization
- 🔺 Renamed most localization files:
es-ES
->es
fr-FR
->fr
it-IT
->it
ja-JP
->ja
lv-LV
->lv
pl-PL
->pl
ru-RU
->ru
tr-TR
->tr
vi-VN
->vi
- Updated latvian (
lv
) translation (@BONNe, #918). - Updated spanish (
es
) translation (@SrAcosta, #929).
Fixes
- Fixed projectiles (e.g. arrows, tridents) being removed from the world if used in order to damage an entity (#846, #895).
- Fixed loading of
SQLite
tables (#902). - Fixed "next" arrow showing when there is nothing on the next page (#904).
- Fixed entering island message and event not being fired when warping in from another world (#911).
- Fixed incorrect permission being required for the
/[admin] getrank
command. - Fixed
/[player] info [name]
working only with island owners and not members. - (Re-)fixed JSON object loading.
- Fixed
/[player] near
not working for island members. - Fixed island members not respawning on the island even though
ISLAND_RESPAWN
flag was set to true. - Fixed errors with Lingering Potions protection (#914).
- Fixed code smells and code security issues.
- Fixed Barrels that could be opened by players although their content could not be interacted with (#893).
- Fixed issues with loading tables in
MySQL
when not usingInnoDB
as storage engine (#934). - Fixed
JsonParseException
occuring when the GitHub weblink downloads malformed JSON data.
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 ...
1.5.3 - Paving the Way
Description
BentoBox 1.5.3 is a small patch release. It fixes some bugs but mostly made some minor API changes that are paving the way for the next minor update: 1.6.0!
As always, thanks for everyone's support ❤️. Also, huge thanks to the contributors who are doing an amazing job at creating and maintaining the official addons, especially @BONNe whose work is just mad!
Both @tastybento and @Poslovitch are currently very busy, but this summer is going to be a great time for all BentoBox users. We still have a long way to go, and this way is made up of tons of exciting things you will discover all along the way. New features, new addons, and better UI/UX are hopefully only the smallest part of it all!
As this is a patch release, you don't need to update your addons, as long as you updated them for 1.5.0.
Changelog
Legend
⚠️ deprecated API.
Contents
API
- Added
CompositeCommand#call(...)
(#759, #772). - Added
ConfigEntry#video()
to specify a link to a video tutorial. - Improved documentation.
- Made
Island#hasNetherIsland()
andIsland#hasEndIsland()
use a safer approach in case the bedrock is removed (#771). ⚠️ DeprecatedPremadeEvent
, please useBentoBoxEvent
instead (#775).- Made the key-value pairs automatically provided by events extending
BentoBoxEvent
, thus making those events "visible" outside BentoBox (BentoBoxWorld/Challenges#138, #775).
Feature / Tweaks
- Added warning messages if
allow-nether
orallow-end
are set tofalse
in theserver.properties
orbukkit.yml
(#741). - Improved handling of duplicate islands in database (BentoBoxWorld/BSkyBlock#144).
Fixes
- Fixed NPE if a bundle does not have an End or Nether blueprint attached to it.
- Fixed right click in the Blueprints Management Panel sometimes not working properly.
- Fixed "too many open files" exception with JSON flat-file database (#776).
- Fixed island data getting incorrectly saved upon loading a large number of islands (BentoBoxWorld/BSkyBlock#144).
- Fixed NPE when pasting Blueprints with a block having a
null
inventory (#779).
1.5.2 - Placeholders Sunshine
Description
BentoBox 1.5.2 is a patch release.
As this is a patch release, you don't need to update your addons, as long as you updated them for 1.5.0.
Note to 1.14+ users
The newest Spigot builds fixed a bug that prevented the Phantoms and various other mobs from spawning in the game worlds (see the issue here). Just tell your players - this may make their experience a bit... spicy.
If there is an issue with how BentoBox handles these mobs, don't hesitate to file an issue on our bug tracker!
Changelog
Contents
API
- Improved javadocs.
- Added various new convenience methods to
Island
:
#getMaxX()
,#getMaxZ()
.#getMaxProtectedX()
,#getMaxProtectedZ()
.#getBoundingBox()
,#getProtectionBoundingBox()
(#758).
- Added various nullability annotations.
- Added the ability to explicitly define a
PremadeEvent
as asynchronous (@BONNe, #763). - Improved error reporting on addon incompatibility.
Feature / Tweaks
- Added
ru-RU
translation (@ramirilyasov999). - Added
rl
alias for all the reload commands. - Improved
/bentobox
commands descriptions in theen-US
locale. - Added 15 new placeholders that relate to the island the player is standing on (#737).
Fixes
- Fixed various issues with permissions for
/bentobox
commands. Check out the new (and fully working) permissions. - Fixed
CompositeCommand
not handling correctly null permission prefixes. - Fixed and secured the GUI handling (@BONNe, BentoBoxWorld/Challenges#132, #761).
- Fixed NPE when the WebManager fails to gather data from the GitHub API (#760).
- Fixed some code smells and slightly improved overall performances.
- Fixed the Ender Dragon spawning on 1.14+ servers (@BONNe, #769).
1.5.1 - Thunders of the Summer
Description
BentoBox 1.5.1 is a hotfix release. We figured out that a bug related to biomes was actually caused by BentoBox, and we obviously fixed it in this release. A safeguard has also been implemented, which will paste back the Nether/End islands (that got wiped out because of Minecraft enforcing the behaviour causing #741, as of 1.14), for whom teleports to these dimensions.
As this is a patch release, you don't need to update your addons, as long as you updated them for 1.5.0.
Changelog
Contents
Feature / Tweaks
- Removed the check for updates button from the BentoBox Management Panel. It will be readded upon the implementation of the update checker.
- Added a safeguard that pastes Nether/End islands once the player teleports to the dimension if the island hasn't been pasted there before/is no longer existing (@YellowZaki, #712, #713).
Fixes
1.5.0 - World of Gooeys Update
Description
Ahoy! The super-groovy BentoBox 1.5.0 lands from the sky, bringing down a lot of exciting new stuff such as long-awaited User Experience improvements, for your BentoBox server to become top-notch!
This update has been more than two months in the making (250+ commits, +5k lines of code), and we’re proud to finally release it. BentoBox 1.5.0 brings in state-of-the-art features that make it a truly unique and exciting release: new GUIs (gooeys), better placeholders, Blueprints, Island creation panel... To learn more about all those crazy things, just keep reading this changelog!
This is a big release - probably the biggest we've ever made - and the only one of its kind. This implies you must take backups upon updating. We've worked on some "converters" to ensure backward-compatibility, but it's still possible that something may go wrong.
Which versions are compatible with this release?
1.13 and 1.13.1 are no longer compatible with BentoBox 1.5.0, yet 1.13.2 still is and remains an officially compatible server version.
In regards to 1.14+, 1.14.2 is the only version that we're officially supporting, and also the only one you should be using due to the various fixes Mojang put in it.
Update instructions
- TAKE BACKUPS.
- 1.14 enforces all lowercase names for worlds. We recommend everyone to rename the world folders to lowercase and update all the configs accordingly. Note: some addons' data might need to be adapted as well (Challenges, Biomes, ...).
- 1.14 also enforces a denial of the teleportation to nether/end worlds if
allow-nether
andallow-end
are set tofalse
in the server properties. Set them totrue
if that's not already the case. Note: as of this version, it should be possible to set one of BentoBox's worlds as the default world for your server, as well as settingBentoBox
as the generator for these worlds inbukkit.yml
. YAML
databases have been deprecated. While they may still work fine, some addons might encounter issues. We highly recommend you to migrate your database type toJSON
. More information can be found in the config comments and on this video. Note:MYSQL
,MARIADB
andMONGODB
databases are not affected by that.
Schems are dead, long live the Blueprints!
For more detailed information about Blueprints, please read Blueprints.
Existing Schems will be converted into the Blueprint format upon loading 1.5.0 for the first time. Yet, take backups in case something goes wrong!
Goeeys (GUIs)
Graphical User Interfaces make the overall game feel more enjoyable and look nicer.
BentoBox Management Panel
The BentoBox Management Panel can be opened with /bentobox manage
. It gives you an overview of your BentoBox setup: installed addons and plugins, enabled hooks, server compatibility and more (to come)!
Catalog
The Catalog takes advantage of our GitHub Link. It will be further improved in the future, but it already grants you with the ability to see what the official addons and gamemodes are! It can be opened with /bentobox catalog
or via the BentoBox Management Panel.
Island Creation Panel
The Island Creation Panel is a long-awaited feature, and here it comes! It shows up to players when they execute the create
or reset
command.
Blueprint Bundle Manager
With Blueprints comes the Blueprint Bundle Manager! You can open it using the /[admin command] blueprint
. Blueprint Bundles are what your players will see in the Island Creation Panel.
Placeholders
Placeholders underwent a big overhaul in this update. We improved their format, added 18 more placeholders and added support for MVdWPlaceholderAPI!
Better placeholders
We improved how placeholders are handled. Check out the Wiki to see their new and better format!
Use external placeholders inside BentoBox
It is now possible to put placeholders from external plugins in our localizations! I don't really know how it could be used, but hey!, it's supported! 😛
Localization
Localizations play a major role in the ability for BentoBox to be used and understood by worldwide users and communities. Just like every update, we're adding new texts into BentoBox, yet those are often not translated to the existing locales - as neither of us at BentoBoxWorld speak these languages. However, for this update, we received the help of kind members from our community, who helped us translating BentoBox into a few more languages!
If you want to help us translating BentoBox and addons too, please join our Discord server.
We will continue to improve the locales over the next versions - we've received quite a lot of feature requests that will definitely make them better once implemented!
🇫🇷 Le jeu à la française
La traduction française arrive, mais elle est encore incomplète. Si un cher compatriote au fromage et à la baguette veut m'assister dans cette tâche, qu'il se manifeste sur le Discord !
🇪🇸 Entretenimiento con los colores de España
Sí! Thanks to @SrAcosta, we've got a nice Spanish translation for BentoBox.
🇱🇻 Nedaudz jautrība latviski
Thanks to @BONNe, we've now got a nice and fresh Latvian translation for BentoBox as well!
🇮🇹 An Italian translation too!
Thanks to @jummes, we've also got an Italian translation for BentoBox.
Translators, here's a tool to help you!
We created the /bbox locale
command. This very spammy command will help you to know which translations are missing from your locale file so that you can get a better overview of what's left to do.
Conversion: from out of fashion to state-of-the-art
For more detailed information and step-by-step conversion guide, please read Migration from an external plugin.
Changelog
Legend
⚠️ may break parts of the API.- 🔺 special attention needed.
Contents
API
- Added nullability annotations to various places in the code.
- Added
PlayersManager#getResetsLeft(World, UUID)
. - Improved javadocs on various places in the code.
- Added icons for addons (
icon: MATERIAL
in theaddon.yml
). ⚠️ DeprecatedGameModePlaceholderManager
.- Fixed inconsistency between
#getMembers()
fromIsland
andIslandsManager
(#627, #628). - Added icons for Hooks.
- Added
Island#getGameMode()
(#631). - Added
OfflineMessageEvent
. - Added
IslandsManager#getIslandCache
. - Panel's titles and PanelItem's names are now automatically color-translated (@BONNe, #660).
- Commands and world registration for addon now must be done in
Addon#onLoad()
as BentoBox now loads at STARTUP (#661). - Added
IslandNearCommand
(#56). ⚠️ Addons that use the Config API must now implementConfigObject
in their config class instead of DataObject.- Added
Flag.Builder#addon(Addon)
. - Added
Addon#registerFlag(Flag)
(@BONNe, #697). - Added
AdminSwitchCommand
(BentoBoxWorld/BSkyBlock#132).
Feature / Tweaks
- Improved handling of default placeholders for GameModeAddons.
- Added [18 new default placeholders](https://github.com/B...
1.4.0 - Whistle of the Spring
Description
It took us a month to come up with this release which doesn't, actually, contain all the features that were originally planned for it. Therefore, this is pretty much a bug-fix / stability improvements release, yet with a bunch of small improvements.
Ahem... And you must update your gamemodes addons. [Edit - all game modes are now updated to 1.4.0]
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
#unregisterPlaceholder(String placeholder)
and#unregisterPlaceholder(Addon addon, String placeholder)
inPlaceholdersManager
(#592). ⚠️ MadeIsland#getCenter()
return a clone of the location (#591 (comment)).- 🔡 Added
AdminSchemListCommand
to display a list of schems in chat (#563). - 🔡 Added
IslandExpelCommand
(#524).
Feature / Tweaks
- Players with
admin.noban
permission cannot be banned (#590, @YellowZaki). - Prevent ender crystals from being hit (#589).
- 🔡 Added
OFFLINE_GROWTH
WORLD_SETTING flag to prevent crops from growing while island members are offline (#580). - Added ability for ops to adjust any island settings, including spawn island (#599).
- Improved islands asynchronous deletion from database (#591, #605).
- Prevented dragon eggs from teleporting outside of protection range (#558).
- Made podzol yield podzol when broken if coarse dirt tilling is denied (#613).
- Made some setting save to config.yml when they are changed while the server is running (#614, #615).
- 🔡 ⚙️ Added ability for admins to hide some flags (#617). To do so, either add the flag to the
hidden-flags
list of the gamemode's config; or open the settings panel and shift click on the flags you want to hide. - Made addons opt-in by default to addons metrics.
- Added a bunch of placeholders that get automatically registered to every GameModeAddon (#322, #616):
bentobox_[gamemode]-world-friendlyname
,bentobox_[gamemode]-island-distance
,bentobox_[gamemode]-island-protection-range
,bentobox_[gamemode]-island-owner
,bentobox_[gamemode]-island-creation-date
,bentobox_[gamemode]-island-spawnpoint
,bentobox_[gamemode]-island-name
. - BentoBox no longer refuses to launch on incompatible servers (#619).
- Added Akarin (as NOT_SUPPORTED) and GLOWSTONE (as INCOMPATIBLE) in server compatibility check (#620, @Remu1012).
Fixes
- Improved code in IslandRespawnListener (#587, @Sxtanna).
- Fixed
IslandEnterEvent
andIslandExitEvent
not being called if theENTER_EXIT_MESSAGES
flag was set to false. - Fixed island protection range resetting if player does not have a range permission (#484).
- Fixed NPE when going through a non-Bentobox world portal (#583).
- Fixed tridents or arrows being removed if PVP was disabled (#597).
- Fixed code smells.
- Fixed ArrayOutOfBoundsException in admin delete command (#600, @BONNe).
- Fixed
MILKING
flag not protecting milking Mooshrooms (#602, @BONNe). - Fixed handling of Phantoms, Pufferfishes and a few other mobs which was being inconsistent (#595, @BONNe).
- Fixed most of the "overlapping islands" issues (#591).
- Added some defensive code.
- Fixed teleportation when the player was in some types of boat (#606).
- Fixed coop'd or trusted being able to use the
sethome
command on other islands (#588). - Fixed
/bbox version
causing errors (#608). - Fixed item frames that could be placed on any island (#610).
1.3.1 - Flags of the bug fixer
Description
BentoBox 1.3.1 is a small bug fixing update which wasn't originally scheduled. Therefore, it also brings some (minor) new features!
As always, update carefully!
Thanks for using BentoBox and our addons ❤️.
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
Features / Tweaks
- 🔡 Added
DRAGON_EGG
PROTECTION flag: prevents players from making this raving egg teleporting everywhere (#559). - 🔡 Added
LEAF_DECAY
SETTING flag: toggles whether leaves decay or not. - Worlds and addons are now listed in alphabetical order in
/bentobox version
(#555). - 🔺 🔡 Added
EXPERIENCE_BOTTLE_THROWING
PROTECTION flag: exp bottles were previously protected by thePOTION_THROWING
flag, but it was said to be misleading for players. - 🔡 Improved the "not in team" message for
AdminTeamKickCommand
(#577).
Fixes
- Fixed
AdminTeamKickCommand
not working properly (#577). - Fixed NPE in PortalTeleportationListener (#583).
- 🔺 Fixed End Portal teleporting into the Nether.
- Fixed UTF-8 encoding issues with MySQL database (#582).
- Fixed NPE in FlagListener if provided location was null, which may occur when 3rd-party plugins create their own inventories (#585).