Releases: NichtStudioCode/InvUI
Releases · NichtStudioCode/InvUI
InvUI v2.0.0-alpha.13
- invui-kotlin: Updated
commons-provider
InvUI v2.0.0-alpha.12
- Updated to Paper 1.21.5-76
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#simulateMultiAddnot 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
ESCorE). 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
SlotElementsthat 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
ClickandPlayerUpdateReasonno 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
ReferencingInventorythat references the player inventory.
- GUI-embedded
ReferencingInventoriesnow 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
PagedGuiandScrollGui, such ashasPreviousPageorgoForward - 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#collectSimilarwould 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,setTabswithout mapping lambdas - Added reactive functions for
setPage,setLine,setTab
Changes
- Renamed all
setContent/setTabs/setTitlemethod 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