Releases: NichtStudioCode/InvUI
Releases · NichtStudioCode/InvUI
InvUI v2.0.0-alpha.16
Alongside the Javadoc, there is now also additional, handwritten documentation available for InvUI v2. Note that this documentation is not yet fully complete. Most notably, all code examples are currently only in Kotlin.
New features
- Added
BrewingWindow
,GrindstoneWindow
,SmithingWindow
- Cartography windows now support setting the view mode (normal, duplicate, small, lock)
- Inventory gui priority and iteration order is now categorized
- Animations can now be configured to not freeze the gui
- Bound items can now be unbound and will be automatically unbound if removed from the gui
Changes
- Renamed
CraftingTableWindow
toCraftingWindow
CartographyWindow
: RenamedoutputGui
toresultGui
, MovedMapIcon
,MapPatch
toCartographyWindow.MapIcon
,CartographyWindow.MapPatch
Animation
no longer holds state. This was moved to a newAnimation.State
class- Localization now uses the mini message translator. This means that arguments are now referenced with
<arg:index>
instead of%s
- Slot element suppliers for inventories and guis will now throw an exception if they've reached their end instead of cycling back to the first slot
- Windows no longer write the slot number of all displayed UI items into their persistent data container
invui-kotlin
: removed provider-combining overloads forItem.Builder
, added provider-mapping overloads (without combing, so only one provider) to everything
Fixes
- Fixed an issue where an exception was thrown when creating a
StonecutterWindow
without defining the buttons gui - Fixed an issue where an incorrect enchantment cost would be displayed in the
AnvilWindow
- Fixed an issue where the cartography window would not show the result slot if the input slot is empty
- Fixed various issues where inventory interactions would ignore the Gui's frozen state
InvUI v2.0.0-alpha.15
- Fixed an issue where InvUI's internal netty channel handler name was not unique
InvUI v2.0.0-alpha.14
- Updated to 1.21.6
- Removed
Gui#remove(...)
in favor ofGui#setSlotElement(..., null)
- Added
CraftingTableWindow
andFurnaceWindow
InvUI v1.46
- 1.21.6 Support
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#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