Skip to content

Releases: okocraft/Box

Version 6.0.0-rc.2

31 Oct 18:07
982af9e
Compare
Choose a tag to compare
Version 6.0.0-rc.2 Pre-release
Pre-release
release: version 6.0.0-rc.2

Version 6.0.0-rc.1

01 Jun 03:51
39fcffc
Compare
Choose a tag to compare
Version 6.0.0-rc.1 Pre-release
Pre-release
release: version 6.0.0-rc.1

Version 5.5.4

27 Apr 11:52
44929cf
Compare
Choose a tag to compare

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

03 Mar 23:55
Compare
Choose a tag to compare

Improvements

  • Catch all exceptions from CoreProtect to prevent item duplication on picking items

Version 5.5.2

03 Jan 16:37
645c8a3
Compare
Choose a tag to compare

New Features

  • Added support for Minecraft 1.20.3/4

Improvements

  • Optimize tab completions of items/players

API Changes

#257 (comment)

Version 5.5.1

27 Nov 20:27
ab0cd18
Compare
Choose a tag to compare

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, and searchByName
    • Make old loadUser, saveUser, saveUserIfNotExists, and search method deprecated for removal

Version 5.5.0

02 Oct 12:48
9ef071c
Compare
Choose a tag to compare

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

#257 (comment)

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

24 Aug 22:09
e5cbfab
Compare
Choose a tag to compare

New Features

  • Add checking Bolt protection when depositing (withdrawing) to (from) blocks

Improvements

  • Remove unnecessary getSelected call in IngredientHolder#select
  • Use ConcurrentHashMap in several places

Fixes

  • Entity task does not run correctly (TaskFactory#runEntityTask)

Version 5.4.1

06 Jul 16:20
bbd721e
Compare
Choose a tag to compare

Changes

  • Re-add support for Folia
  • Update Gradle to 8.2 and dependencies

Version 5.4.0

18 Jun 12:31
3890b8f
Compare
Choose a tag to compare

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).

image

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

image

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 and MCDataVersion#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