Releases: okocraft/Box
Version 6.0.0-rc.2
release: version 6.0.0-rc.2
Version 6.0.0-rc.1
release: version 6.0.0-rc.1
Version 5.5.4
Changes
- Add a check for Minecraft version to prevent run on Minecraft 1.20.5 or later
- If you want to use Minecraft 1.20.5 or later, please update to v6.x.x
Version 5.5.3
Improvements
- Catch all exceptions from CoreProtect to prevent item duplication on picking items
Version 5.5.2
New Features
- Added support for Minecraft 1.20.3/4
Improvements
- Optimize tab completions of items/players
API Changes
Version 5.5.1
Fixes
- Cannot initialize default items when running Paper 1.20.2 that includes
PotionType
changes by Spigot
API Changes
- Rework
UserManager
- Add methods
createBoxUser
with uuid and name (optional),loadBoxUser
, andsearchByName
- Make old
loadUser
,saveUser
,saveUserIfNotExists
, andsearch
method deprecated for removal
- Add methods
Version 5.5.0
New Feature
Support for Minecraft 1.20.2
Box works fine in Minecraft 1.20.2.
Click the item in the inventory to open its category menu
When the Box menu is open, clicking on an item in the player's inventory now opens the category menu to which that item belongs.
Add --page
(-pa
) argument for /box gui
For example, run /box gui --category stones --page 2
to open the stone
category on page 2.
Accordingly, clickable category buttons in /box iteminfo
will now take you to the page with the item.
API Changes
Notice of Box v6
We are planning to further improve performance/stability and to change the internal structure for it. The release date is not yet scheduled, but it will come in the not-distant future.
Background and For Developers
It has already been two years since our last major overhaul (Version 4.0.0). During these two years, Box has been running on our servers without any problems and still stores hundreds of millions of items.
Plugin development is entering a new era. First, the latest LTS version, Java 21, was recently released, adding several new features since Java 17 that are worth applying to Box. Second, PaperMC announced Folia, a multi-threaded server software in March. Box is experimentally supporting Folia, but there is still room for improvement. Finally, there are major changes planned for the widely used Bukkit API. This will provide backward compatibility, but in the medium to long term, Box will also be forced to make changes.
In addition to these environmental factors, my knowledge has grown over the past two years. The current Box implementation has good enough performance and stability, but we can improve them further. There are also a few headaches caused by the two-year-old design. These may not need to be resolved now, but will weigh heavily as technical debt as time goes on.
For these reasons, several branches are undergoing modifications for Box v6. It will include some breaking API changes. Developers of projects that depend on the Box API should check the API change notices in Box v5.5.x. In Box v5.5.x, APIs that will be changed or removed in v6 are marked with annotations such as @Deprecated
, and some alternate APIs are also provided. This helps distribute the breaking changes made from v5 to v6 as much as possible.
Full Changelog: 5.4.2...5.5.0
Version 5.4.2
New Features
- Add checking Bolt protection when depositing (withdrawing) to (from) blocks
Improvements
- Remove unnecessary
getSelected
call inIngredientHolder#select
- Use
ConcurrentHashMap
in several places
Fixes
- Entity task does not run correctly (
TaskFactory#runEntityTask
)
Version 5.4.1
Changes
- Re-add support for Folia
- Update Gradle to 8.2 and dependencies
Version 5.4.0
New Features
Add Support for Minecraft 1.20
Minecraft 1.20 has been released, and Box is now compatible Paper 1.20!
Note: Folia support is temporally dropped in this version. After Folia 1.20 released, we will added back support.
Improvements
Add item's categories for /box iteminfo
Category names are clickable. When clicked, it opens the category menu directly (Minecraft: Java Edition only).
Add arguments for /box gui
/box gui
- Opens the Box menu/box gui <player name>
->/box gui --player <player name>
- Opens the Box menu with the specified player's stockholder/box gui --category <category id>
- Opens the specified category menu
Note: /box gui <player name>
can still be used, but will be removed in the future.
Improve the default order of woods
Changes
Remove Categorizer
Categorizer is a system for automatically categorizing new items into the appropriate category. This system was implemented based on the name of the item and the item-tags. However, considering the planned changes to the Spigot/Paper API, we deemed difficult to maintain this system.
Instead, the default categories.yml
is used to automatically categorize them into the category defined by default. While the Box is being maintained, new items are categorized in the same way as in the previous system. Items not defined in default categories.yml
are categorized into the uncategorized
category.
Note that if you do not manage categories yourself, it is recommended to delete plugins/Box/categories.yml
and regenerate it after update (the order of items is not taken into account, both in the previous categoriser and after this change, which is ugly).
Fixes
- Increase stock of ingredient's "crafting remaining item"
New API
PlayerCollectItemInfoEvent
This event called when the player collects item information after typing /box iteminfo
.
Category#containsItem
Checks if the BoxItem is contained in the category.
API Changes
- Add
MCDataVersion#MC_1_20
andMCDataVersion#MC_1_20_1
- Remove deprecated constructors of stock
- Allow null for the permission node of
TabCompleter#players
- Add Javadoc for models of the craft feature