Skip to content

Releases: NichtStudioCode/InvUI

InvUI v2.0.0-alpha.19

18 Sep 11:30
Compare
Choose a tag to compare
InvUI v2.0.0-alpha.19 Pre-release
Pre-release

New features

  • Window state tracking with Window#setWindowState, Window#getClientWindowState. This sends a ping packet to the viewer of the window, with the acknowledgement being stored in the window's client window state. This can be used to track things like which bundle slot index is selected client-side when a bundle select handler is fired.
  • ItemBuilder#setGlint
  • SlotElementSupplier: an ingredient that supplies all slots of a GUI at once (and therefore has more information than Supplier<SlotElement>)
  • A custom handler for exceptions from user code that were caught by InvUI can now be set using InvUI#setExceptionHandler this defaults to logging the exception using the plugin's logger like before.
  • invui-kotlin: DSL: added maxLine in scroll GUI DSL
  • invui-kotlin: Added Inventory.get(IntRange) operator for getting an ObscuredInventory of the given slot range

Changes

  • ScrollGui<?> now also works with uneven line lengths and interrupted lines. Such GUIs will be treated as if there was something in front of a scroll GUI with even lines (i.e. content will be hidden "behind" those slots)
  • ScrollGui<Gui> no longer "flattens" the GUIs if the line length doesn't match the GUI's width
  • Paged<Gui> & TabGui can now also have "obstructed" content list slots (e.g. holes in the layout), behaving like ScrollGui<?>
  • PagedGui<Gui> & TabGui no longer "flattens" the GUIs if the line length doesn't match the GUI's width
  • Setting a gui as an ingredient in a structure no longer "flattens" the GUI if the line lengths don't match. Similarly to TabGui, this also supports obstructed slots.
  • Window, Gui, Item now implement Observer / Observable
  • Added overloads Gui#notifyWindow(char), Gui#notifyWindows(char, char) to prevent calls to notifyWindows from incorrectly resolving to Gui#notifyWindows(int) and Gui#notifyWindow(int, int)
  • Removed VirtualInventory resizing
  • VirtualInventory#serialize(OutputStream) and VirtualInventory#deserialize(InputStream) now throw IOException instead of catching and logging them
  • CompositeInventory and ObscuredInventory can now have event handlers, custom iteration order and custom gui priority
  • invui-kotlin: DSL: parameters of handler functions like onClick have been moved to the receiver

Fixes

  • Fixed an issue where the items retrieved from ReferencingInventory were not copied

InvUI v2.0.0-alpha.18

20 Aug 14:31
Compare
Choose a tag to compare
InvUI v2.0.0-alpha.18 Pre-release
Pre-release

New features

  • invui-kotlin: DSL: added ingredients { } block for sharing ingredients between guis on the same "layer"
  • invui-kotlin: DSL: improved provider dsl properties: you can now call provider functions like .map { } on provider dsl properties while still being able to swap out the underlying provider with by

Changes

  • Packet listeners are now injected at an earlier PlayerJoinEvent stage. This allows listeners on PlayerJoinEvent with normal priority to reliably open windows
  • Improved exception messages when trying to bind a specialized BoundItem to an unsupported gui type

Fixes

  • Fixed an issue where Gui.notifyWindows(char key, char... keys) would only notify the elements of the first key
  • Fixed an issue where scroll guis with no content list slots would try to divide by zero and throw an exception
  • Fixed an issue where frozen, ignoreObscuredInventorySlots, and background were ignored when building normal guis

InvUI v2.0.0-alpha.17

07 Aug 15:13
Compare
Choose a tag to compare
InvUI v2.0.0-alpha.17 Pre-release
Pre-release

Java code examples are now available in the InvUI Documentation

New features

  • invui-kotlin: Added experimental dsl for creating windows, guis, and items
  • Added overloads for Item.Builder#addClickHandler, Item.Builder#addBundleSelectHandler accepting functional interfaces with fewer arguments
  • Added Item#EMPTY - an empty item that does nothing

Changes

  • Exceptions thrown in user code (e.g. in Item#getItemProvider) are now caught and logged in more scenarios
  • The gui of the merged window (Window#mergedBuilder) now defaults to an empty gui of dimensions (9, 10) (previously this threw an exception if left unspecified)

InvUI v2.0.0-alpha.16

26 Jul 19:44
Compare
Choose a tag to compare
InvUI v2.0.0-alpha.16 Pre-release
Pre-release

Alongside the Javadoc, there is now also additional 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 to CraftingWindow
  • CartographyWindow: Renamed outputGui to resultGui, Moved MapIcon, MapPatch to CartographyWindow.MapIcon, CartographyWindow.MapPatch
  • Animation no longer holds state. This was moved to a new Animation.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 for Item.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

26 Jun 17:54
Compare
Choose a tag to compare
InvUI v2.0.0-alpha.15 Pre-release
Pre-release
  • Fixed an issue where InvUI's internal netty channel handler name was not unique

InvUI v2.0.0-alpha.14

22 Jun 16:42
Compare
Choose a tag to compare
InvUI v2.0.0-alpha.14 Pre-release
Pre-release
  • Updated to 1.21.6
  • Removed Gui#remove(...) in favor of Gui#setSlotElement(..., null)
  • Added CraftingTableWindow and FurnaceWindow

InvUI v1.46

17 Jun 17:40
Compare
Choose a tag to compare
  • 1.21.6 Support

InvUI v2.0.0-alpha.13

12 Jun 11:20
Compare
Choose a tag to compare
InvUI v2.0.0-alpha.13 Pre-release
Pre-release
  • invui-kotlin: Updated commons-provider

InvUI v2.0.0-alpha.12

10 May 09:08
Compare
Choose a tag to compare
InvUI v2.0.0-alpha.12 Pre-release
Pre-release
  • Updated to Paper 1.21.5-76

InvUI v2.0.0-alpha.11

02 May 14:46
Compare
Choose a tag to compare
InvUI v2.0.0-alpha.11 Pre-release
Pre-release
  • Fixed an issue where windows would not work if ProtocolLib was installed