Releases: MineInAbyss/guiy-compose
Releases · MineInAbyss/guiy-compose
v0.14.0
[0.14.0] - 2025-09-19
Added
- New navigation system inspired by jetpack compose
- Support for different inventory types like Anvil, and the ability to swap between them. See anvil gui example.
- InventoryHolder system which manages switching between different inventories and manages viewers
- Added some composables we created under MineInAbyss/MineInAbyss (ex. PlayerHead)
- Back handler that pops navigation stack, or exits when empty by default
- A basic
GuiyViewModel
class, and ability to register them withviewModel { ... }
, and get them withviewModel<MyViewModel>()
- These also provide a
viewModelScope
for correctly collecting state in sync with UI updates. - In the future, we plan to integrate with something like Koin for proper DI. Please note that currently ViewModels are tied to the composition as a whole, with an API for registering them per-screen coming later.
- NOTE: Android's ViewModels do a lot under the hood, our goal is not to match behaviour perfectly but to provide enough functionality to follow architecture best practices.
- These also provide a
- Some new composition locals, including
LocalGuiyOwner
andCurrentPlayer
getter for getting the first viewer for a running guiy instance.
Changed
onClose
doesn't require areopen
call anymore, instead reopening on its own. Callexit
explicitly to exit (the default behaviour.)- Updates some composables to use nicer callbacks, ex. Paginated/Scrollable
- Players are now passed once on gui creation, not per Inventory screen
- Major internal cleanup and refactoring, unfortunately this leads to some package names changing
Fixed
- Flickering GUIs when switching screens
- Mouse cursor resetting when switching screens of the same height
- Use an immediate-style Dispatcher to let compose correctly finish recompositions in one loop
- Double clicks being sent as well as two single click events with the default
clickable
modifier. This lead to unexpected extra clicks by default which are now fixed.
v0.14.0-dev.3
v0.14.0-dev.2
v0.14.0-dev.1
🐛 Bug Fixes
- Use an immediate style dispatcher for guiy composition - (e97572c)
- Flickering previously opened screen when navigating back on inventory close - (e97572c)
- Correctly exit guild menu when backDispatcher has no active listeners - (07fd95b)
🚜 Refactor
- Move viewer tracking logic to InventoryHolder, change menu reopening logic to prevent flickering old ui when pressing back (menus are reopened for all online players once per second if they have not been explicitly exited) - (1f1cfb6)
v0.14.0-dev.0
⚙️ Miscellaneous Tasks
- Bump version - (c3b3730)
🚜 Refactor
- Generify canvases - (b551e4d)
⛰️ Features
- Back handler (gui esc) - (1f877f2)
🚜 Refactor
- Reimplement navigation system - (1f877f2)
⛰️ Features
- Allow consuming click events so they do not forward to parents - (b8642a2)
- Allow creating two inventory composables at once, so long as one is not inside the other, explicitly deny the latter - (b8642a2)
🐛 Bug Fixes
- Coerce page/line passed to Paginated/Scrollable menus, use onValueChange functions as callbacks - (524a78c)
⛰️ Features
- Anvil inventory with example - (a191aab)
🐛 Bug Fixes
- Correctly handle onClose per inventory - (45bb078)
- Swap to single InventoryHolder to better navigate between different inventories - (a191aab)
🚜 Refactor
- Reopen guis automatically, but call exit by default - (45bb078)
⛰️ Features
- Text and PlayerHead components for common UI elements - (e912567)
- RememberMiniMsg function, used in more places - (e912567)
🐛 Bug Fixes
- Inventory holder inconsistent behavior on plugin inventory close - (e912567)
- ActiveInventory in GuiyInventoryHolder not using MutableStateFlow - (e912567)
- Correctly close GUI when calling inventory.close() - (6747077)
🚜 Refactor
- Start cleaning up commonly reused logic like setOf(player) - (6747077)
⚙️ Miscellaneous Tasks
- Bump MINOR - (76a3152)
v0.13.0
v0.13.0-dev.4
🚜 Refactor
- Generify canvases - (b551e4d)
v0.13.0-dev.3
v0.13.0-dev.2
⛰️ Features
- Allow consuming click events so they do not forward to parents - (b8642a2)
- Allow creating two inventory composables at once, so long as one is not inside the other, explicitly deny the latter - (b8642a2)
🐛 Bug Fixes
- Coerce page/line passed to Paginated/Scrollable menus, use onValueChange functions as callbacks - (524a78c)