Releases: NichtStudioCode/InvUI
Releases · NichtStudioCode/InvUI
InvUI v2.0.0-alpha.11
- Fixed an issue where windows would not work if ProtocolLib was installed
InvUI v2.0.0-alpha.10
- Fixed
Inventory#simulateMultiAdd
not working
InvUI v2.0.0-alpha.9
- Fixed an issue where TabGui-bound items would not be updated on tab change
2.0.0-alpha.8
New features
- Updated to 1.21.5
- Added
CrafterWindow
,MerchantWindow
,StonecutterWindow
- Added methods to change/update items/slot elements in GUIs based on the ingredient key that was used in the structure
- Content lists slots can now be changed after GUI creation
- Items can now have bundle select handlers (triggered when scrolling through a bundle and when the cursor leaves the bundle item)
- GUI-embedded inventories can now handle bundle interactions
- Inventories can now define a custom iteration order that is used for methods like
addItem
- Windows can now have a "fallback window", which is a window that will be opened if the previous window was closed by the player (by pressing
ESC
orE
). Unlike opening a window in a close handler, this will carry the cursor item stack over to the new window.
Changes
- Reworked animations. Animations can now be created via
Animation.builder()
and consist of 5 components:- Slot filter: Defines which slots are part of the animation.
- Slot selector: Selects the slots that are shown in each frame.
- Intermediary generator: Creates intermediary
SlotElements
that are displayed before the slots pop in. - Show handler: Called when slot(s) are shown, for example to play a sound effect.
- Finish handler: Called when the animation is finished.
- All windows are now packet-based
- This should resolve #84 and #107
Click
andPlayerUpdateReason
no longer contain the Bukkit event / other information predicted by Bukkit, as no click event is actually fired.- There is no longer a difference between "single" and "split" windows. Instead, all windows are now what was previously considered a split window, with the bottom GUI defaulting to a
ReferencingInventory
that references the player inventory.
- GUI-embedded
ReferencingInventories
now automatically notify windows when the referenced contents change - Reworked CartographyWindow
- Replacing the open window will now carry the cursor item stack to the new window
- Window close handlers now receive a close reason
- Renamed builder factory functions to be more consistent. If there is only a single builder available, the function is now named
.builder
(for example inAnvilWindow.builder()
). Specialized builder factory functions are prefixed by their specialty (e.g.PagedGui.itemsBuilder()
) - Updated the naming of some methods in
PagedGui
/ScrollGui
- Removed superfluous methods in
PagedGui
andScrollGui
, such ashasPreviousPage
orgoForward
- Replaced supplier-based GUI/window state with
Property
/MutableProperty
, which are supposed to serve as an adapter interface for such data structures. - invui-kotlin: Removed provider-combining overloads
Fixes
- Reverted GUI-/inventory slot element suppliers to the old looping behavior. This is required for cases where a GUI builder's build method is called multiple times.
- Fixed an issue where the GUI background would not work for non-nested GUIs
- Fixed an issue where
Inventory#collectSimilar
would not take from full stacks
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