* feat: added worlds and datapacks tab
* feat: added datapacks in browser; fixed datapacks view loading too long
* feat: added icons to datapacks
* fix: scope world query invalidation to the world that changed
* fix: keep the selected data pack world in one place and guard deletes
* chore: share one dialog shell between the world prompt and delete confirm
* fix: stop watching every subfolder of saves
---------
Co-authored-by: LynithDev <61880709+LynithDev@users.noreply.github.com>
* feat: added sections for advanced mods
* fix: treat a null bundle file type as normal
* chore: drop ScrollArea::lazy_grid
* chore: pass one header height to lazy_sections
* chore: name BundleFileType::Normal in test fixtures
* feat: don't offer advanced bundle mods as optional mods
---------
Co-authored-by: LynithDev <61880709+LynithDev@users.noreply.github.com>
* feat: first version of flagging mods thru datastorage
* feat: added fallbacks, version-specific flag and project-specific flag
* chore: downsized the amount of requests sent when looking up for alternatives
* feat: added explanations for flagging mods
* fix: prompt for flagged dependencies instead of silently skipping them
* chore: size the flagged popup with max_height instead of measuring it
* chore: drop is_flagged and the explanation size cap
* feat: refresh the bad mods list with the pre-launch checks
---------
Co-authored-by: LynithDev <61880709+LynithDev@users.noreply.github.com>
* feat: added support for github hosted bundle mods
* fix: keep external bundle mods when their manifest entry gains an id
* fix: match a pending external bundle update to its installed jar
* chore: parse the bundle file host with url instead of by hand
* fix: namespace external bundle file ids under ext:
* chore: rename the Browser tab to Online and list unbundled GitHub mods there
---------
Co-authored-by: LynithDev <61880709+LynithDev@users.noreply.github.com>
* feat: added deleting browser and local mods by context menu and on list view by trashcan icon
* fix: only confirm shared deletes that reach other clusters
* fix: confirm shared removals from the browser package page too
* fix: keep "View in folder" alive after the context menu closes
---------
Co-authored-by: LynithDev <61880709+LynithDev@users.noreply.github.com>
* feat: added reseting back to the default options in settings tabs
* chore: removed the reset button for whole page and changed it to a reset button for every setting row
* chore: removed old reset options from search index
* chore: remove unused use_game_active and GameState::any_active
* fix: reset global memory to the Default option instead of a fixed size
* feat: add reset buttons to the launcher tab's system settings
* chore: fold with_reset into resettable_all and drop unneeded dispatch clones
* chore: rustfmt the import lists touched by the merge
* fix: treat a missing discrete GPU setting as on
* fix: read the discrete GPU reset default with the same true fallback
---------
Co-authored-by: LynithDev <61880709+LynithDev@users.noreply.github.com>
* fix(java): add refresh button for stale runtimes
* fix(notifications): keep clipboard toasts out of the notification center
* fix(images): allow custom endpoints on non-public hosts
* chore: make toast_only notifications not increment notification counter
* chore: reorder navbar links
---------
Co-authored-by: LynithDev <61880709+LynithDev@users.noreply.github.com>
* fix(stats): drop zero units from durations and cap the server pie at ten slices
* fix(stats): say out loud that "when you play" bars are lifetime totals
* feat(stats): paint every bar in the accent colour until one is hovered
* feat(stats): add a calendar range picker to daily playtime
* fix(stats): stop recovery inventing playtime and carry sessions over midnight
* feat(stats): more stats out of the data already recorded
* feat(stats): eight more personas, and let them see the server data
* fix(charts): stop axis labels being cut off to their own bar's width
* feat(stats): give the overview a headline stat instead of seven identical boxes
* feat(stats): turn personas into wrapping badges
* fix(stats): lay the overview out for the window it is actually in
* feat(stats): fold the monthly chart into one "Playtime by hour/day/month" card
* fix(stats): stop the total playtime card making the tile block so tall
* fix(stats): strip the persona badges back to plain tags
* feat: added microsoft sdk provider
* feat: changed the default provider to microsoft everywhere
* feat: added checking for microsoft jdks and prompting user to install them (ui for discussion)
* feat: added toast popup when user tries to remove runtime that is pinned to some cluster
* feat: added 'migrating' user to the microsoft jdks
* feat: changed reading mods from cluster folders on launch to having cluster folders symlinks in the shared .minecraft folder where mods stay per given cluster; changed resource packs and shader packs from working per cluster to global, every resource pack and shader pack is now being shared between clusters; added mods disabling whenever a mod is manually removed from the mods folder
* fix/feat: fixed hardlinks counting as a duplicate of files it was pointing to (windows); added a progress bar to the disk storage view in settings
* chore: connected microsoft jdk branch and package folder management one
---------
Co-authored-by: LynithDev <61880709+LynithDev@users.noreply.github.com>
* Add Ornithe support
* chore: fix the remaining startup issues reltaed to arguments and manifest caching
* fix: stop repairing on every launch for natives-only libraries
---------
Co-authored-by: LynithDev <61880709+LynithDev@users.noreply.github.com>
* feat: added removal of .tmp files on launcher start after 10 minutes of being untouched; added removal of java runtime files whenever user deletes java runtime inside java settings (before they were only being deleted from the database, not files)
* feat: added modal for removing java runtimes
---------
Co-authored-by: LynithDev <61880709+LynithDev@users.noreply.github.com>
* feat: added ability to decline TOS; added blockades for hosts while TOS is declined
* fix: allowed datastorage-v2, meta.polyfrost.org and status.polyfrost.org
* chore: changed typography
* chore: changed TOS decline warning to a modal