Skip to content

Releases: DevNatan/inventory-framework

v3.0.0-rc.3 (09-13-2023)

14 Sep 01:30
ef81b9f
Compare
Choose a tag to compare

🎉 New Features

  • Now components overlap each other based on rendering priorities, basically, two items can now be placed in the same slot and they will render properly based on visibility conditions like displayIf or onRender/rendered result (#433)
  • New displayIf with context as parameter to be able to use displayIf(booleanState::get) (#436)
  • Better Kotlin interop and extensions to kotlin.time package (#439)
  • New back() to navigate back to the previous view. Use onResume to catch when "back" is used. See Creating Flows with back() and onResume on Wiki (#443)
  • Apply default configuration to all views. See Default Configuration on Wiki (#444)
  • New item updateOnStateChange(State) (that's the same as watch but more explicit) (#447)
  • interactionDelay(Duration) allows set a interval between player interactions (#460)
  • Added context and index parameters to Pagination state (#456)
  • New hideIf (the opposite of displayIf) to hide items based on a condition (#467)
  • New computedPaginationState and lazyPaginationState (#458)

🐛 Bug fixes

  • Inventory transition don't work in newer versions, now we close inventory before transitioning to others via open (#457)
  • Players being able to remove items from view inventory by clicking in their own inventory (#459)
  • Issues with pagination items updates also not being able to use displayIf or watch now fixed (#466)

📘 Documentation

🧩 API changes

  • StateValue from API is now an interface also Pagination now extends StateValue (#434)
  • Better Kotlin interop & Bukkit platform View do not implement Bukkit's InventoryHolder anymore (#439)
  • New IndexSlotFunction<T> and IndexSlotConsumer<T> interfaces (#440)
  • ComponentBuilder's watch(State) is now deprecated and scheduled for removal in v3.1.0 (#447)
  • View's onInit(ViewConfigBuilder) moved to inventory-framework-platform module (#448)

🛠️ Internal changes

  • Move platform related code from API to inventory-framework-platform module (#445)
  • Errors while loading async pagination data sources are now propagated (#471)

v3.0.0-rc.2 (08-15-2023)

15 Aug 05:34
Compare
Choose a tag to compare

🎉 New Features

  • New openForPlayer() and openForEveryone() with initial data parameter, like in ViewFrame (#421)
  • Minecraft 1.19 and 1.20 support in dynamic title update (#423)
  • New updateTitleForPlayer(title, player) to update title for a specific player (#424)
  • Asynchronous Pagination (experimental) (#432)

🐛 Bug fixes

  • Pagination items with dynamic rendering not reacting to global update (#425)
  • Update are no more called for static items (#425)

⚡Performance improvements

  • Pagination components are now registered lazily (#425)
  • Component updates triggered by watch(State) no more updates the entire view, just the component itself (#425)

📘 Documentation

  • Pagination on Wiki had its structure reformulated to simplify the reading, go more straight to the point, added some missing topics to explain better about pagination with dynamic items and data source
  • Page "Inventory Title Programmatic Update" on Wiki reworked and renamed to Dynamic Title Update

🧩 API changes

  • Internal state and component management related methods were marked as Internal API

🛠️ Internal changes

  • Project module names changed now every module has "inventory-framework-" prefix
  • Removed kotlin-dsl and feature-event-bus modules

Full Changelog: v3.0.0-rc.1...v3.0.0-rc.2

v3.0.0-rc.1 (08-07-2023)

07 Aug 23:22
Compare
Choose a tag to compare

🐛 Bug fixes

  • Fix relocation warn being sent even in the wrong conditions. Now we check if IF's main class is available in runtime and plugin "InventoryFramework" is enabled (#412)
  • Null getPlayer() in RenderContext (#414)
  • An error thrown when a empty pagination source is provided (#415)
  • Dynamically rendered items in pagination being positioned in the wrong place (#416)

🎉 New Features

  • New ViewFrame.open(view, player, data) overload (#417)
  • New item.updateOnClick() to trigger context update on item click (#418)

🧩 API changes

  • initialState() is now mutable so its value can be changed (#413)

🔧 Other changes

  • Bump junit from 5.9.3 to 5.10.0 (#406)

Full Changelog: v3.0.0-beta...v3.0.0-rc.1

v3.0.0-beta (08-04-2023)

05 Aug 00:16
Compare
Choose a tag to compare

Inventory Framework is now published to Maven Central!

This release introduces Shared Contexts (#409) preview also fixes with artifacts publication issues.

Full Changelog: v3.0.0-alpha...v3.0.0-beta

v3.0.0-alpha (08-01-2023)

02 Aug 00:18
Compare
Choose a tag to compare

🐛 Bug fixes

  • Infer container size automatically when layout is present (#377)
  • JDK and PaperSpigot versions compatibility issues (#384)
  • Change layout component registration order to ensure it works with PaginationState (#399)

🎉 New Features

  • Item render and update handler shortcuts (#274)
  • Simplified way to conditional item rendering with displayIf(BooleanSupplier) (#338)
  • Support more inventory types (#343)
  • Allow to change component position while rendering (#395)

📘 Documentation

  • Added GIF to Counter code sample
  • Added Per-player Data Source topic to Pagination feature documentation

🧩 API changes

  • Internal data used in initialState is now available in Internal API which allows Features System to use it (#326)
  • New unsetSlot to create items with unset slots (#395)
  • New item click handler onClick(Runnable) overload (#400)

🛠️ Internal changes

  • Lombok removed (#391)
  • Immutable LayoutSlot and layout components renderization order (#399)

🔧 Other changes

Full Changelog: v3.0.0-EAP...v3.0.0-alpha

v3.0.0-EAP (06-07-2023)

07 Jun 23:35
9e028b3
Compare
Choose a tag to compare

Version 3 Release Preview.
Please refer to Migrating to version 3 on Wiki and Installation for migration details.

This version is NOT production ready.

Full Changelog: 2.5.4-rc.1...v3.0.0-EAP

v2.5.4-rc.1 (10-09-2022)

11 Sep 00:23
Compare
Choose a tag to compare

🐛 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

📘 Documentation

  • Code preview on Wiki.

🧩 API changes

  • Provide unique element index for pagination (#239)

🔧 Other changes

  • Bump com.diffplug.spotless from 6.9.1 to 6.10.0 (#214)
  • Update IF-specific bStats charts (#227)

🛠️ 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

23 Aug 22:25
Compare
Choose a tag to compare

🐛 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 ref refOrNull(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> to List<? extends T>
  • ItemWrapper asBukkitItem and isEmpty 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 with item.rendered(::createItem) and item.onUpdate with item.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

29 Jul 18:28
Compare
Choose a tag to compare

🐛 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

18 Jul 23:26
Compare
Choose a tag to compare

🐛 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