Skip to content

Releases: NichtStudioCode/InvUI

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, 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 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

InvUI v2.0.0-alpha.10

01 May 14:39
Compare
Choose a tag to compare
InvUI v2.0.0-alpha.10 Pre-release
Pre-release
  • Fixed Inventory#simulateMultiAdd not working

InvUI v2.0.0-alpha.9

22 Apr 14:40
Compare
Choose a tag to compare
InvUI v2.0.0-alpha.9 Pre-release
Pre-release
  • Fixed an issue where TabGui-bound items would not be updated on tab change

2.0.0-alpha.8

22 Apr 10:50
Compare
Choose a tag to compare
2.0.0-alpha.8 Pre-release
Pre-release

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 or E). 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:
    1. Slot filter: Defines which slots are part of the animation.
    2. Slot selector: Selects the slots that are shown in each frame.
    3. Intermediary generator: Creates intermediary SlotElements that are displayed before the slots pop in.
    4. Show handler: Called when slot(s) are shown, for example to play a sound effect.
    5. Finish handler: Called when the animation is finished.
  • All windows are now packet-based
    • This should resolve #84 and #107
    • Click and PlayerUpdateReason 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 in AnvilWindow.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 and ScrollGui, such as hasPreviousPage or goForward
  • 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