CraftVentory v2.0.0 - New features, fixes and code improvements
Features:
Pagination improvements:
Improving pagination handling by adding the new PaginationManager class that is specifically responsible of that.
Improving pagination registration to keep their current state when opening inventory multiple times. Note: Needed for the inventory history feature.
Adding PaginationModel#setCurrentPage(int page) to be able to manually open a specific page in a pagination.
New item actions:
Adding theUPDATE_CONTENT action to update the whole inventory content.
Adding the UPDATE_PAGINATIONS action to update paginations.
Adding the InventoryModel class to let developers store properties within an inventory.
Hooks: Adding hooks to let developers execute code specifically for an inventory when it is opened, closed or when an item is clicked. Hooks are applied on events (e.g. sub classes of the FastInventoryEvent class). Hooks can be added on the following events:
FastInventoryBeforeOpenEvent: Called before opening an inventory.
FastInventoryAfterOpenEvent: Called after an inventory has been opened.
FastInventoryClickEvent: Called when a player clicks on an item.
FastInventoryCloseEvent: Called when an inventory is closed.
Inventory history: Adding the tracking of players' inventory history and adding actions to navigate through it. The following actions has been added:
BACKWARD: Open a previously opened inventory in the history which is before the current one in the history.
FORWARD: Open a previously opened inventory in the history which is after the current one in the history.
HOME: Open the root inventory in the history.
OPEN_INVENTORY: Open a new inventory and add it to the current history or in a new one.
Rework:
Package architecture: Reworking the package architecture to better represent the three layer organization of the library (e.g. config, transform, inventory). This is a breaking change for a more coherent organization of classes.
Transformation process: Reworking the transformation process that retrieves and enhance inventory properties from an inventory configuration.
The transformation process is now well defined and scoped.
Now, all the manipulated inventory properties can be enhanced through custom Data Transfer Objects (DTO) such as title, inventory type, items, paginations, etc.
Providers are now able to provide several properties instead of only one (ex: an item and its associated slots).
Events: Reworking inventory related event classes (FastInventoryEvent, FastInventoryClickEvent) and adding new events.
Inventory handling: Reworking the way inventories are opened and closed to implement the tracking of player's inventory history. Now, an inventory should be opened using methods from the InventoryViewManager interface instead of the ones from the FastInventory interface.
Documentation:
Javadoc: Adding javadoc on all the classes of the api package and on the FastInventoryLibrary class.
This update also includes the renaming of the project from FastInventory to CraftVentory which is a more unique name.
For more information about the update, see the milestone 2.0.0 on GitHub.