Releases: NichtStudioCode/InvUI
Releases · NichtStudioCode/InvUI
InvUI v1.45
- 1.21.5 Support
- Deprecated api-querying skull builder and head texture methods, as hardcoded texture values should be preferred in most cases.
InvUI v1.44
- Fixed an issue where all deserialized item stacks would have conversions applied as if they were serialized under data version 3700
InvUI v2.0.0-alpha.7
New features
invui
- Guis can now be used as ingredients in gui builder / structure
- Added
AnimatedTitle
- Placeholders for item name and lore can now be defined in ItemBuilder. These placeholders will be applied if name / lore are set using the methods that accept mini-message-formatted strings. Placeholders will also be filled into translation strings by default.
- ItemStack arrays supplied to VirtualInventory constructors will now get copied
invui-kotlin
- Added reactive functions
setItemProvider
,setContent
,setTabs
without mapping lambdas - Added reactive functions for
setPage
,setLine
,setTab
Changes
- Renamed all
setContent
/setTabs
/setTitle
method overloads that accept suppliers tosetContentSupplier
/setTabsSupplier
/setTitleSupplier
- Container open and initial items packets are now bundled to prevent empty inventories from shortly being visible on window open
- Improved VirtualInventory serialization:
- Empty slots now take up less space
- Compression is now applied to all item stacks, instead of each item stack individually
Fixes
- Fixed an issue where item updates in windows that were caused by player interactions would first send a packet for reverting to the previous state (cancelling the interaction), and then send the packet for the actual result of the interaction one tick later. This could be noticed as "flickering" when placing items in virtual inventories.
- Fixed an issue where server-side component localization would drop some text preceding
%%
- Fixed an issue where windows would not be updated anymore after reopening them
InvUI v2.0.0-alpha.6
- Fixed an issue where Inventory#setItemPreUpdateHandler and Inventory#setItemPostUpdateHandler would throw IndexOutOfBoundsException
InvUI v2.0.0-alpha.5
- Inventories can now define click handlers
- Inventories can now have multiple item update handlers
- Added
ItemBuilder#setCustomName
- Fixed an issue where ItemBuilder would never clear its cache and return outdated item stacks
- Added
ItemBuilder#build
, which will never return cached item stacks - Fixed an issue where embedded obscured inventories would not update properly
InvUI v2.0.0-alpha.4
- Fixed an issue where
ItemBuilder
could not handle item stacks with a custom model data component that had an alpha value != 0 in the colors section
InvUI v2.0.0-alpha.3
- Fixed a possible NPE in the
ItemBuilder
constructor - Fixed an issue where
ItemBuilder
would try to write into unmodifiable collections - Fixed an issue where custom model data was not cloned when cloning
ItemBuilder
InvUI v2.0.0-alpha.2
- Fixed an issue where windows were not notified when updating inventories through composite- or obscured inventories
InvUI v2.0.0-alpha.1
Please note that this is a pre-release, and more API-breaking changes may happen in future pre-releases.
The javadoc for this version can be found here.
The project structure has changed, the only available artifacts are now xyz.xenondevs.invui:invui
and xyz.xenondevs.invui:invui-kotlin
.
Breaking changes
- Removed multi-version support, future InvUI versions will only always target latest Paper
- Removed Spigot support
Gui
,Window
,Inventory
, and all their subclasses are now sealed or finalItem
is now sealed, butAbstractItem
can still be extended- Replaced
ControlItem
withBoundItem
/AbstractBoundItem
- Removed
Item#getItemProvider()
in favor ofItem#getItemProvider(Player)
Item#handleClick
now receivesClick
instead ofInventoryClickEvent
- Removed
SkullBuilder
,PotionBuilder
,BannerBuilder
,FireworkBuilder
and replacedItemBuilder
with a simplified version. All this data can still be added to items using the new ItemBuilder's data component methods. - Removed support for
BaseComponent
, adventure components can now be used without wrapping them in aComponentWrapper
- Raw strings for names in the item builder or window title are now parsed as mini message instead of legacy text format
- Removed the default item implementations such as
SimpleItem
orCycleItem
. Alternatives are available via static methods inItem
or usingItem.builder()
.
New features
- New
Item.Builder
andBoundItem.Builder
API for creating UI items without subclassingAbstractItem
- Data component support in
ItemBuilder
- Added
IngredientPreset
Item#notifyWindows
can now be called asynchronously- Experimental reactive item/gui/window API via
invui-kotlin
InvUI v1.43
- 1.21.4 Support