Releases: DevNatan/inventory-framework
v2.5.4-rc.1 (10-09-2022)
π Bug fixes
- Fixed context data inheritance (#219)
- Fixed NullPointerException in context paginator (#224)
- Fixed fallback navigation item retrieval compatibility (#228)
- Fixed "Update job not started" error (#232)
- Pagination context getSlot() returning index instead of current slot (#235)
- Context getCurrentItem always returning null (#235)
- Try to fix ConcurrentModificationException on open (#237)
- Fixed page switch issues due to dynamic pagination source (#233, #238)
- Fixed wrong update interval when using schedule update with Duration as parameter (#236)
π New Features
- Context History feature (#120)
- Event Bus feature (#234)
onSlotRender
handler prototype (#235)- Allows nullable values on pagination sources (#235)
π Documentation
- Code preview on Wiki.
𧩠API changes
- Provide unique element index for pagination (#239)
π§ Other changes
π οΈ Internal changes
-
Now clear() supports immediate clear when context is on entity container (#235)
-
Bump com.diffplug.spotless from 6.9.1 to 6.10.0 (#214)
Full Changelog: 2.5.4-beta...v2.5.4-rc.1
v2.5.4-beta
π Bug fixes
- Fixed pagination navigation (#196)
- User-defined pattern render on paginated views (#196)
- Optimize and fix some pagination issues like "At least one pagination must be set" (#201)
- Provided/asynchronous source is now updated on container when view is updated (#201)
- Close handler Bukkit player retrieval (#202)
- Allow users to ignore navigation item factory (#205)
- Allow users set navigation item slot by
item.withSlot(...)
(#206) - Fix "Slot conversion not supported" (#208)
- Instantiate entity container properly, solve
isOnEntityContainer
checks (#211)
π New Features
- Auto-slot-fill through
availableSlot(...)
and unified layout, use layout on regular and paginated views (#174) - Custom UnknownReferenceException to
ref(String)
and nullable refrefOrNull(String)
(#210) - Allow slot clear on update, a slot can now be cleared with
clear()
(#209)
β‘Performance improvements
- Removed nextTick from updateSlot call (#203)
- Layouts are now resolved on view initialization not on render (#174)
𧩠API changes
- Asynchronous pagination provider CompletableFuture value changed from
List<T>
toList<? extends T>
- ItemWrapper
asBukkitItem
andisEmpty
is now public (#201) - New AsyncPaginationDataState
onSuccess(BiConsumer<..., List<? extends T>>)
to get result on example AbstractView#nextTick
is now public- Shortcut to
item.onRender
withitem.rendered(::createItem)
anditem.onUpdate
withitem.updated(::updatedItem)
π Documentation
- Version compatibility table updated on Wiki
- Improved
setSource(Function<...>)
documentation with a real world example
π οΈ Internal changes
- Pagination source now can only be set once (#201).
π§ Other changes
- Added license scan report and status (#198)
- Update mockito monorepo to v4.7.0 (#197)
- Update plugin com.diffplug.spotless to v6.9.1 (#194)
- Update dependency gradle to v7.5.1 (#189)
- Pipeline interceptor tests (#199)
Full Changelog: 2.5.3...v2.5.4-beta
v2.5.3
π Bug fixes
- Fix scheduled updates (#175)
- UnsupportedOperationException when use getPlayer in PaginatedViewSlotContext (#183)
- Skip layout render if signature is not checked (#185)
- IllegalStateException when use setSource in PaginatedView (#172)
π οΈ Other changes
- Test-only workflow (#154)
- Update code formatter (#173)
- Update plugin com.diffplug.spotless to v6.9.0 (#182)
- Update junit5 monorepo to v5.9.0 (#179)
- Update ASzc/change-string-case-action action to v2 (#168)
- Update bug report issue template (#171)
Full Changelog: 2.5.2...2.5.3
v2.5.2
π Bug fixes
- Nested view open by context ClassCastException (#164)
- Lately fetch update job initiator (#163)
- Context update implementation (#162)
π§ API changes
- Change ViewItem click handler type (#161)
π οΈ Internal changes
- Update gradle to v7.5 (#155)
- Update gradle/gradle-build-action digest to cd3cedc (#157)
- Create generate artifacts workflow (#165)
Full Changelog: 2.5.1...2.5.2
v2.5.1
π Bug fixes
- Click handler doesn't work in onItemRender. Thanks to @Azodox (#142)
- Random NPE when closing inventory. Thanks to @Azodox (#143)
- ConcurrentModificationException in while opening view. Thanks to @luiz-otavio (#144)
- Dynamic title update implementation (#146)
- Handle close if mark is applied or item is close on click (#148)
Full Changelog: 2.5.1-rc.2...2.5.1
v2.5.1-rc.2
π Bug fixes
- Fix container size normalization (#133)
- Transfer open context data to regular context (#134)
- Allow multiple ViewFrame instances on non-bundled library (#138)
π₯ Third-Party
- Update plugin com.diffplug.spotless to v6.8.0 (#125)
- Update gradle/gradle-build-action digest to 2a7ffc9 (#128)
- Update kotlin to v1.7.10 (#130)
π οΈ Internal changes
- Enable bStats metrics on library level (#136)
v2.5.1-rc.1
In this release the entire internal code has been completely rewritten, new code is abstracted correctly to adapt possible implementations for other platforms in the new future and to make life easier for new contributors when they touch the code (#89).
π New Features
- Added support for more inventory types (#58)
- Lazy pagination source (#72)
- Asynchronous Opening (#76)
- Item References (#80)
- Slot context item patch (#112)
- Asynchronous Pagination (#113)
- Now
onItemHold
,onItemRelease
andonMoveOut
can be applied per-item - Allow user defined layout (custom character) in context scope
π Bug fixes
- Fixed context cancellation based on interceptors call order
- Fixed a bug where when the paginated view was updated with empty source the items from the previous pagination were not cleared
- View update job error (#106)
- Fixed error that causes context to be cleared randomly by the Garbage Collector (#107)
- An exception will be thrown if the user does not define any paging data
- Fixed a bug that pagination data of multiple contexts in the same view conflicts with each other
π§ API changes
- More fluent ViewFrame API with chain accessors
- Removed pollution of overridable methods in View that shouldn't be overridden
onClickOutside
andonHotbarInteract
handlers now deprecated- Paginated view
offset
andlimit
now deprecated - Page switch methods returns a
boolean
to let user know if page switch was successful - User-defined layout pattern method signature changed
- Pagination navigation item methods override now deprecated
π οΈ Internal changes
- Prohibit pagination item rendering function use (#104)
- An exception will be thrown if the user does not define any pagination data source
- An exception will be thrown if the user changes the state of the view after it has been rendered
- Bukkit platform implementation now have bStats
π Documentation
InventoryFramework has been moved from repository readme to Wiki.
v2.5-CC
v2.5
This version of IF comes with some significant performance changes related to paging inventory and regarding defining items in the same, it is now possible for you to define more than one item for the same slot which will be rendered according to the rendering priority.
π New Features
- Inheritable context data (#65)
- User-defined paginated view layout pattern (#70)
- Custom "on click outside" inventory handler (#55)
π Bug Fixes
- Pagination item overrides already set item on re-render (#81)
- Now errors are propagated by default if they occur inside a handler (#83)
π§ API changes
- View not longer implements
Closeable
(#82)
π Documentation
- Replaced 'BLAZE_ROW' to 'BLAZE_ROD' in readme (thanks to @mattnicee7) (#75)
π₯ New Contributors
- @mattnicee7 made their first contribution in #75
v2.4.3
Bug Fixes
- Error handling now works properly
onOpen
andonRender
(#51).
API changes
onHotbarInteract(...)
is now stable;- Possibility to get the pagination source from ViewContext (#62);
- Allow getting current title from context inventory (#56);
- New
PaginatedView(rows)
constructor (#49).
Internal changes
- An exception is thrown when trying to manipulate or access the context inventory before opening it (#63);
- The inventory will not be displayed to the player if the initial rendering is cancelled. (#60).
Documentation
- View options details on readme (#66).