From 936e4247a3301dbe8ca8bdf21c1fdff89ae504d6 Mon Sep 17 00:00:00 2001 From: oiupoyt Date: Thu, 17 Sep 2026 00:28:04 +0530 Subject: [PATCH] feat: update base to official upstream 2.4.2 with all cracked features intact (2.4.2-c1) - Rebased base onto official Polyfrost OneLauncher 2.4.2 (release v2.4.2). - Ensured offline mode launches with 0 Microsoft accounts required (no OfflineRequiresMicrosoft error). - Maintained custom 3D offline skin changer, player model switch (Classic/Slim), and targeted Minecraft Java UUID character slot isolation to prevent multiplayer skin cloning. - Maintained CustomSkinLoader auto-configuration for local skins, Ely.by, and SkinRestorer. - Integrated direct GitHub Releases auto-updater pointing to oiupoyt/OneLauncher-Cracked. - Ported inline username renaming modal and Change Skin navigation in account settings and onboarding. - Maintained mods filter popover blur/text ghosting fix in package manager. - Preserved fast dev profile and multiplatform release workflow for v2.4.2-c1. - All workspace tests and clippy checks pass with 0 errors. --- .github/workflows/copr_publish.yml | 60 + .github/workflows/oneclient_nightly.yml | 2 + .github/workflows/oneclient_release.yml | 2 + .github/workflows/release.yml | 4 +- ...ee2e369b99542369fa5401aa4057d0b326b86.json | 12 + CONTRIBUTING.md | 2 +- Cargo.lock | 149 +- Cargo.toml | 18 +- README.md | 67 +- distribution/copr/oneclient-bin.spec | 43 + packages/oneclient_app/Cargo.toml | 2 +- .../assets/backgrounds/CavesAndCliffs.jpg | Bin 633705 -> 399201 bytes .../oneclient_app/assets/icons/icon-logo.svg | 4 + .../assets/icons/line-chart-up-01.svg | 3 + .../src/components/account_switcher.rs | 17 +- .../src/components/active_cluster_panel.rs | 1 + .../oneclient_app/src/components/button.rs | 25 +- .../oneclient_app/src/components/charts.rs | 32 +- .../src/components/context_menu.rs | 23 +- .../src/components/date_range_picker.rs | 410 +++++ .../src/components/dynamic_art.rs | 2 + .../src/components/generic_prompt.rs | 21 +- .../src/components/grid_columns.rs | 27 - .../oneclient_app/src/components/icons.rs | 2 + .../src/components/java_install_manager.rs | 1 + .../src/components/memory_field.rs | 18 +- .../src/components/microsoft_java_prompt.rs | 189 +++ .../src/components/microsoft_login.rs | 67 +- packages/oneclient_app/src/components/mod.rs | 8 +- .../src/components/navbar/app_navbar.rs | 97 +- .../src/components/navbar/mod.rs | 3 + .../src/components/notifications.rs | 4 +- .../src/components/overlay_popup.rs | 5 +- .../src/components/package_row.rs | 12 +- .../src/components/package_update_popup.rs | 7 +- .../src/components/pagination.rs | 31 +- .../src/components/screenshot_viewer.rs | 1 + .../src/components/scrollview.rs | 28 +- .../src/components/splash_curtain.rs | 5 +- .../oneclient_app/src/components/tab_bar.rs | 20 +- .../oneclient_app/src/components/toasts.rs | 4 +- .../oneclient_app/src/components/tooltip.rs | 315 ++++ packages/oneclient_app/src/events.rs | 22 +- packages/oneclient_app/src/hooks/actions.rs | 272 +++- .../oneclient_app/src/hooks/active_cluster.rs | 11 + packages/oneclient_app/src/hooks/mod.rs | 18 +- .../src/hooks/queries/player_profile.rs | 6 +- .../oneclient_app/src/hooks/view_state.rs | 10 +- .../src/layout/animated_outlet.rs | 2 +- .../oneclient_app/src/layout/app_shell.rs | 21 +- .../oneclient_app/src/layout/cluster_shell.rs | 1 + .../oneclient_app/src/layout/root_layout.rs | 15 +- .../src/layout/settings_shell.rs | 46 +- packages/oneclient_app/src/lib.rs | 1 + packages/oneclient_app/src/main.rs | 12 +- packages/oneclient_app/src/microsoft_java.rs | 358 +++++ packages/oneclient_app/src/notifications.rs | 26 +- packages/oneclient_app/src/state.rs | 9 + packages/oneclient_app/src/ui.rs | 62 + packages/oneclient_app/src/utils.rs | 33 +- .../src/view/app/analytics/charts.rs | 217 ++- .../src/view/app/analytics/mod.rs | 73 +- .../src/view/app/analytics/servers.rs | 85 +- .../src/view/app/analytics/tiles.rs | 316 +++- .../src/view/app/browser/index/cards.rs | 15 +- .../src/view/app/browser/index/mod.rs | 194 ++- .../src/view/app/browser/index/sidebar.rs | 2 +- .../src/view/app/browser/index/skeletons.rs | 14 +- .../oneclient_app/src/view/app/browser/mod.rs | 55 +- .../src/view/app/browser/package/gallery.rs | 48 +- .../src/view/app/cluster/cluster_settings.rs | 16 +- .../src/view/app/cluster/overview.rs | 1 + .../view/app/cluster/package_manager/mod.rs | 10 +- .../view/app/cluster/package_manager/views.rs | 209 ++- .../src/view/app/cluster/screenshots.rs | 32 +- .../src/view/app/clusters/page.rs | 68 +- packages/oneclient_app/src/view/app/debug.rs | 90 +- .../src/view/app/settings/accounts.rs | 42 +- .../src/view/app/settings/java.rs | 2 +- .../src/view/app/settings/minecraft.rs | 39 +- .../src/view/app/settings/storage.rs | 64 +- .../src/view/onboarding/bundles/row.rs | 3 +- .../src/view/onboarding/downloading/mod.rs | 45 +- .../view/onboarding/downloading/progress.rs | 6 +- .../oneclient_app/src/view/onboarding/mod.rs | 8 +- packages/oneclient_cluster/src/cluster.rs | 17 + packages/oneclient_cluster/src/error.rs | 6 +- packages/oneclient_cluster/src/lib.rs | 2 +- packages/oneclient_cluster/src/manager.rs | 4 +- packages/oneclient_cluster/src/profile.rs | 59 +- packages/oneclient_cluster/src/profiles.rs | 4 +- packages/oneclient_common/src/domain.rs | 43 +- packages/oneclient_common/src/paths.rs | 16 + .../oneclient_content/src/bundles/install.rs | 119 +- packages/oneclient_content/src/bundles/mod.rs | 1 - .../oneclient_content/src/bundles/types.rs | 11 + .../oneclient_content/src/bundles/updates.rs | 76 +- .../src/packages/activity.rs | 124 +- .../src/packages/dependencies.rs | 14 +- .../oneclient_content/src/packages/mod.rs | 2 +- .../src/packages/store/link.rs | 111 +- .../src/packages/store/manifest.rs | 62 +- .../src/packages/store/mod.rs | 94 +- .../oneclient_content/src/packages/updates.rs | 240 ++- packages/oneclient_core/Cargo.toml | 3 + packages/oneclient_core/src/auth/mod.rs | 13 - packages/oneclient_core/src/auth/offline.rs | 52 - packages/oneclient_core/src/clusters/mod.rs | 4 +- .../oneclient_core/src/clusters/prepare.rs | 38 +- .../src/clusters/unlink_legacy.rs | 52 +- packages/oneclient_core/src/game/analytics.rs | 396 ++++- packages/oneclient_core/src/game/error.rs | 3 - packages/oneclient_core/src/game/fabric.rs | 113 ++ packages/oneclient_core/src/game/gpu.rs | 362 ----- packages/oneclient_core/src/game/gpu/linux.rs | 601 +++++++ packages/oneclient_core/src/game/gpu/mod.rs | 30 + packages/oneclient_core/src/game/heal.rs | 21 + packages/oneclient_core/src/game/launch.rs | 80 +- packages/oneclient_core/src/game/mod.rs | 3 +- packages/oneclient_core/src/game/reattach.rs | 24 +- .../oneclient_core/src/game/shared_dir.rs | 1432 +++++++++++++++-- packages/oneclient_core/src/images/mod.rs | 57 +- packages/oneclient_core/src/lib.rs | 2 +- packages/oneclient_core/src/recovery.rs | 8 + packages/oneclient_core/src/relocate.rs | 28 +- .../oneclient_core/src/settings/launcher.rs | 21 +- packages/oneclient_core/src/settings/mod.rs | 2 +- packages/oneclient_core/src/storage.rs | 181 ++- packages/oneclient_core/src/verify.rs | 5 +- ...000_repair_duplicate_disable_overrides.sql | 20 + packages/oneclient_db/src/dao/artifact.rs | 66 + .../oneclient_db/src/dao/cluster_bundle.rs | 19 + packages/oneclient_db/src/models/artifact.rs | 8 + packages/oneclient_db/src/models/mod.rs | 2 +- packages/oneclient_java/Cargo.toml | 1 + .../examples/install_provider.rs | 9 +- packages/oneclient_java/src/service.rs | 143 +- .../oneclient_java/src/vendors/microsoft.rs | 286 ++++ packages/oneclient_java/src/vendors/mod.rs | 12 + packages/oneclient_mc/src/arguments.rs | 169 +- packages/oneclient_mc/src/install.rs | 223 ++- packages/oneclient_mc/src/manifest.rs | 59 +- packages/polyio/Cargo.toml | 1 + packages/polyio/src/file.rs | 145 +- 144 files changed, 7978 insertions(+), 2043 deletions(-) create mode 100644 .github/workflows/copr_publish.yml create mode 100644 .sqlx/query-af0567c14b689a3f53207179ba9ee2e369b99542369fa5401aa4057d0b326b86.json create mode 100644 distribution/copr/oneclient-bin.spec create mode 100644 packages/oneclient_app/assets/icons/icon-logo.svg create mode 100644 packages/oneclient_app/assets/icons/line-chart-up-01.svg create mode 100644 packages/oneclient_app/src/components/date_range_picker.rs delete mode 100644 packages/oneclient_app/src/components/grid_columns.rs create mode 100644 packages/oneclient_app/src/components/microsoft_java_prompt.rs create mode 100644 packages/oneclient_app/src/components/tooltip.rs create mode 100644 packages/oneclient_app/src/microsoft_java.rs delete mode 100644 packages/oneclient_core/src/auth/mod.rs delete mode 100644 packages/oneclient_core/src/auth/offline.rs create mode 100644 packages/oneclient_core/src/game/fabric.rs delete mode 100644 packages/oneclient_core/src/game/gpu.rs create mode 100644 packages/oneclient_core/src/game/gpu/linux.rs create mode 100644 packages/oneclient_core/src/game/gpu/mod.rs create mode 100644 packages/oneclient_db/migrations/20260914120000_repair_duplicate_disable_overrides.sql create mode 100644 packages/oneclient_java/src/vendors/microsoft.rs diff --git a/.github/workflows/copr_publish.yml b/.github/workflows/copr_publish.yml new file mode 100644 index 00000000..29e43a37 --- /dev/null +++ b/.github/workflows/copr_publish.yml @@ -0,0 +1,60 @@ +name: Publish COPR Package + +on: + release: + types: [published] + workflow_dispatch: + inputs: + tag: + description: 'Release tag (e.g. oneclient-2.0.1)' + required: true + +jobs: + resolve: + runs-on: ubuntu-latest + outputs: + version: ${{ steps.parse.outputs.version }} + steps: + - name: Parse release tag + id: parse + run: | + TAG="${{ github.event.release.tag_name || inputs.tag }}" + if [[ "$TAG" =~ ^oneclient-(.+)$ ]]; then + echo "version=${BASH_REMATCH[1]}" >> "$GITHUB_OUTPUT" + else + echo "::error::Tag '$TAG' does not match oneclient-*" + exit 1 + fi + + publish-bin: + needs: resolve + runs-on: ubuntu-latest + container: fedora:latest + steps: + - name: Install tooling + run: dnf -y install rpm-build rpmdevtools copr-cli bsdtar git + + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0 + + - name: Prepare spec + env: + VERSION: ${{ needs.resolve.outputs.version }} + run: | + SPEC="distribution/copr/oneclient-bin.spec" + sed -i "s/^Version:.*/Version: ${VERSION}/" "$SPEC" + sed -i "s/^Release:.*/Release: 1%{?dist}/" "$SPEC" + + - name: Build SRPM + run: | + rpmdev-setuptree + spectool -g -R distribution/copr/oneclient-bin.spec + rpmbuild -bs distribution/copr/oneclient-bin.spec + + - name: Submit to COPR + env: + COPR_CONFIG_CONTENT: ${{ secrets.COPR_CONFIG }} + run: | + mkdir -p ~/.config + printf '%s' "$COPR_CONFIG_CONTENT" > ~/.config/copr + chmod 600 ~/.config/copr + copr-cli build polyfrost/OneClient ~/rpmbuild/SRPMS/oneclient-bin-*.src.rpm diff --git a/.github/workflows/oneclient_nightly.yml b/.github/workflows/oneclient_nightly.yml index c73906df..657cbb10 100644 --- a/.github/workflows/oneclient_nightly.yml +++ b/.github/workflows/oneclient_nightly.yml @@ -189,6 +189,8 @@ jobs: shell: bash run: | set -euo pipefail + cp target/release/.cargo-packager/deb/*/data/usr/share/applications/oneclient_app.desktop \ + target/release/oneclient_app.desktop cargo generate-rpm -p packages/oneclient_app cp target/generate-rpm/*.rpm "${{ steps.outdir.outputs.dir }}/" diff --git a/.github/workflows/oneclient_release.yml b/.github/workflows/oneclient_release.yml index 1ad5909d..fec605a1 100644 --- a/.github/workflows/oneclient_release.yml +++ b/.github/workflows/oneclient_release.yml @@ -407,6 +407,8 @@ jobs: shell: bash run: | set -euo pipefail + cp target/release/.cargo-packager/deb/*/data/usr/share/applications/oneclient_app.desktop \ + target/release/oneclient_app.desktop cargo generate-rpm -p packages/oneclient_app cp target/generate-rpm/*.rpm "${{ steps.outdir.outputs.dir }}/" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 68b329f7..19de9da8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -7,9 +7,9 @@ on: workflow_dispatch: inputs: tag: - description: 'Release Tag (e.g. v2.3.1)' + description: 'Release Tag (e.g. v2.4.2)' required: false - default: 'v2.3.1-c2' + default: 'v2.4.2-c1' type: string permissions: diff --git a/.sqlx/query-af0567c14b689a3f53207179ba9ee2e369b99542369fa5401aa4057d0b326b86.json b/.sqlx/query-af0567c14b689a3f53207179ba9ee2e369b99542369fa5401aa4057d0b326b86.json new file mode 100644 index 00000000..32177647 --- /dev/null +++ b/.sqlx/query-af0567c14b689a3f53207179ba9ee2e369b99542369fa5401aa4057d0b326b86.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "\n DELETE FROM cluster_bundle_overrides\n WHERE cluster_id = ? AND package_id = ? AND override_type = 'disabled'\n ", + "describe": { + "columns": [], + "parameters": { + "Right": 2 + }, + "nullable": [] + }, + "hash": "af0567c14b689a3f53207179ba9ee2e369b99542369fa5401aa4057d0b326b86" +} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a5b328e0..0e7e670f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -32,7 +32,7 @@ To find an issue that interests you, you can browse through our [existing issues #### Making Changes Locally This project is a pure Rust [`Cargo`] workspace (edition 2024). Make sure you have a -recent Rust toolchain (`rustc` **1.85+**) installed before proceeding - the easiest way +recent Rust toolchain (`rustc` **1.97+**) installed before proceeding - the easiest way is via [rustup]. To make changes locally, follow these steps: diff --git a/Cargo.lock b/Cargo.lock index 61b19605..be1fd5ef 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -158,7 +158,7 @@ dependencies = [ "bytestring", "derive_more", "encoding_rs", - "foldhash", + "foldhash 0.2.0", "futures-core", "http 0.2.12", "httparse", @@ -253,7 +253,7 @@ dependencies = [ "cfg-if", "derive_more", "encoding_rs", - "foldhash", + "foldhash 0.2.0", "futures-core", "futures-util", "impl-more", @@ -428,6 +428,7 @@ dependencies = [ "parking_lot", "percent-encoding", "windows-sys 0.60.2", + "wl-clipboard-rs", "x11rb", ] @@ -2022,6 +2023,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "fixedbitset" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" + [[package]] name = "flate2" version = "1.1.9" @@ -2049,6 +2056,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + [[package]] name = "foldhash" version = "0.2.0" @@ -2094,7 +2107,7 @@ dependencies = [ [[package]] name = "freya" version = "0.5.0-rc.4" -source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#631db7cd14befdf6daf3b7c73e6e36117bffaf59" +source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#56c6e694084210a8405a8cf9e50a1e236a64efd3" dependencies = [ "cfg-if", "freya-android", @@ -2117,7 +2130,7 @@ dependencies = [ [[package]] name = "freya-android" version = "0.5.0-rc.4" -source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#631db7cd14befdf6daf3b7c73e6e36117bffaf59" +source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#56c6e694084210a8405a8cf9e50a1e236a64efd3" dependencies = [ "freya-components", "freya-core", @@ -2130,7 +2143,7 @@ dependencies = [ [[package]] name = "freya-animation" version = "0.5.0-rc.4" -source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#631db7cd14befdf6daf3b7c73e6e36117bffaf59" +source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#56c6e694084210a8405a8cf9e50a1e236a64efd3" dependencies = [ "easer", "freya-core", @@ -2139,7 +2152,7 @@ dependencies = [ [[package]] name = "freya-clipboard" version = "0.5.0-rc.4" -source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#631db7cd14befdf6daf3b7c73e6e36117bffaf59" +source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#56c6e694084210a8405a8cf9e50a1e236a64efd3" dependencies = [ "copypasta", "freya-core", @@ -2148,7 +2161,7 @@ dependencies = [ [[package]] name = "freya-components" version = "0.5.0-rc.4" -source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#631db7cd14befdf6daf3b7c73e6e36117bffaf59" +source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#56c6e694084210a8405a8cf9e50a1e236a64efd3" dependencies = [ "accesskit", "anyhow", @@ -2174,7 +2187,7 @@ dependencies = [ [[package]] name = "freya-core" version = "0.5.0-rc.4" -source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#631db7cd14befdf6daf3b7c73e6e36117bffaf59" +source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#56c6e694084210a8405a8cf9e50a1e236a64efd3" dependencies = [ "accesskit", "async-io", @@ -2204,7 +2217,7 @@ dependencies = [ [[package]] name = "freya-edit" version = "0.5.0-rc.4" -source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#631db7cd14befdf6daf3b7c73e6e36117bffaf59" +source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#56c6e694084210a8405a8cf9e50a1e236a64efd3" dependencies = [ "bitflags 2.13.1", "freya-clipboard", @@ -2218,7 +2231,7 @@ dependencies = [ [[package]] name = "freya-engine" version = "0.5.0-rc.4" -source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#631db7cd14befdf6daf3b7c73e6e36117bffaf59" +source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#56c6e694084210a8405a8cf9e50a1e236a64efd3" dependencies = [ "freya-skia-safe", ] @@ -2226,7 +2239,7 @@ dependencies = [ [[package]] name = "freya-markdown" version = "0.5.0-rc.4" -source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#631db7cd14befdf6daf3b7c73e6e36117bffaf59" +source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#56c6e694084210a8405a8cf9e50a1e236a64efd3" dependencies = [ "freya-components", "freya-core", @@ -2237,7 +2250,7 @@ dependencies = [ [[package]] name = "freya-performance-plugin" version = "0.5.0-rc.4" -source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#631db7cd14befdf6daf3b7c73e6e36117bffaf59" +source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#56c6e694084210a8405a8cf9e50a1e236a64efd3" dependencies = [ "freya-core", "freya-engine", @@ -2247,7 +2260,7 @@ dependencies = [ [[package]] name = "freya-query" version = "0.5.0-rc.4" -source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#631db7cd14befdf6daf3b7c73e6e36117bffaf59" +source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#56c6e694084210a8405a8cf9e50a1e236a64efd3" dependencies = [ "freya-core", "futures-util", @@ -2256,7 +2269,7 @@ dependencies = [ [[package]] name = "freya-radio" version = "0.5.0-rc.4" -source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#631db7cd14befdf6daf3b7c73e6e36117bffaf59" +source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#56c6e694084210a8405a8cf9e50a1e236a64efd3" dependencies = [ "freya-core", ] @@ -2264,7 +2277,7 @@ dependencies = [ [[package]] name = "freya-router" version = "0.5.0-rc.4" -source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#631db7cd14befdf6daf3b7c73e6e36117bffaf59" +source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#56c6e694084210a8405a8cf9e50a1e236a64efd3" dependencies = [ "freya-core", "freya-router-macro", @@ -2276,7 +2289,7 @@ dependencies = [ [[package]] name = "freya-router-macro" version = "0.5.0-rc.4" -source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#631db7cd14befdf6daf3b7c73e6e36117bffaf59" +source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#56c6e694084210a8405a8cf9e50a1e236a64efd3" dependencies = [ "proc-macro2", "quote", @@ -2287,7 +2300,7 @@ dependencies = [ [[package]] name = "freya-sdk" version = "0.5.0-rc.4" -source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#631db7cd14befdf6daf3b7c73e6e36117bffaf59" +source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#56c6e694084210a8405a8cf9e50a1e236a64efd3" dependencies = [ "freya-core", ] @@ -2336,7 +2349,7 @@ dependencies = [ [[package]] name = "freya-testing" version = "0.5.0-rc.4" -source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#631db7cd14befdf6daf3b7c73e6e36117bffaf59" +source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#56c6e694084210a8405a8cf9e50a1e236a64efd3" dependencies = [ "accesskit", "freya-clipboard", @@ -2351,7 +2364,7 @@ dependencies = [ [[package]] name = "freya-winit" version = "0.5.0-rc.4" -source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#631db7cd14befdf6daf3b7c73e6e36117bffaf59" +source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#56c6e694084210a8405a8cf9e50a1e236a64efd3" dependencies = [ "accesskit", "accesskit_winit", @@ -2741,6 +2754,9 @@ name = "hashbrown" version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "foldhash 0.1.5", +] [[package]] name = "hashbrown" @@ -2750,7 +2766,7 @@ checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ "allocator-api2", "equivalent", - "foldhash", + "foldhash 0.2.0", ] [[package]] @@ -3231,9 +3247,9 @@ dependencies = [ [[package]] name = "interfrost" -version = "1.3.2" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3449eb9b8a587b832db2eb3a45776928ce0927c0efa7d0be9a7f4c619140a12a" +checksum = "76a14453cd2d9454beb9b410dc7b845b2d62ff67a6f42460bce6b9bc6e34d3b9" dependencies = [ "chrono", "serde", @@ -4464,7 +4480,7 @@ checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" [[package]] name = "oneclient_app" -version = "2.3.1-c1" +version = "2.4.2-c1" dependencies = [ "anyhow", "arboard", @@ -4514,7 +4530,7 @@ dependencies = [ [[package]] name = "oneclient_auth" -version = "2.3.1-c1" +version = "2.4.2-c1" dependencies = [ "base64 0.22.1", "chrono", @@ -4538,7 +4554,7 @@ dependencies = [ [[package]] name = "oneclient_cluster" -version = "2.3.1-c1" +version = "2.4.2-c1" dependencies = [ "bytes 1.11.1", "chrono", @@ -4561,7 +4577,7 @@ dependencies = [ [[package]] name = "oneclient_common" -version = "2.3.1-c1" +version = "2.4.2-c1" dependencies = [ "directories", "interfrost", @@ -4574,7 +4590,7 @@ dependencies = [ [[package]] name = "oneclient_content" -version = "2.3.1-c1" +version = "2.4.2-c1" dependencies = [ "async-trait", "async_zip", @@ -4602,7 +4618,7 @@ dependencies = [ [[package]] name = "oneclient_core" -version = "2.3.1-c1" +version = "2.4.2-c1" dependencies = [ "async-compression", "async-stream", @@ -4623,6 +4639,7 @@ dependencies = [ "image", "indicatif", "interfrost", + "libc", "md-5 0.10.6", "oneclient_auth", "oneclient_cluster", @@ -4666,7 +4683,7 @@ dependencies = [ [[package]] name = "oneclient_db" -version = "2.3.1-c1" +version = "2.4.2-c1" dependencies = [ "async-tempfile", "chrono", @@ -4681,7 +4698,7 @@ dependencies = [ [[package]] name = "oneclient_discord" -version = "2.3.1-c1" +version = "2.4.2-c1" dependencies = [ "chrono", "discord-rich-presence", @@ -4693,7 +4710,7 @@ dependencies = [ [[package]] name = "oneclient_events" -version = "2.3.1-c1" +version = "2.4.2-c1" dependencies = [ "thiserror 2.0.18", "tokio", @@ -4703,13 +4720,14 @@ dependencies = [ [[package]] name = "oneclient_java" -version = "2.3.1-c1" +version = "2.4.2-c1" dependencies = [ "astral-tokio-tar", "async-tempfile", "async-trait", "async_zip", "futures-lite", + "futures-util", "oneclient_common", "oneclient_events", "oneclient_net", @@ -4725,7 +4743,7 @@ dependencies = [ [[package]] name = "oneclient_macro" -version = "2.3.1-c1" +version = "2.4.2-c1" dependencies = [ "proc-macro2", "quote", @@ -4734,7 +4752,7 @@ dependencies = [ [[package]] name = "oneclient_mc" -version = "2.3.1-c1" +version = "2.4.2-c1" dependencies = [ "base64 0.22.1", "chrono", @@ -4756,7 +4774,7 @@ dependencies = [ [[package]] name = "oneclient_net" -version = "2.3.1-c1" +version = "2.4.2-c1" dependencies = [ "arc-swap", "async-trait", @@ -4778,7 +4796,7 @@ dependencies = [ [[package]] name = "oneclient_polyplus" -version = "2.3.1-c1" +version = "2.4.2-c1" dependencies = [ "async-tungstenite", "bytes 1.11.1", @@ -4857,6 +4875,16 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "os_pipe" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + [[package]] name = "owned_ttf_parser" version = "0.25.1" @@ -4910,7 +4938,7 @@ checksum = "35fb2e5f958ec131621fdd531e9fc186ed768cbe395337403ae56c17a74c68ec" [[package]] name = "pathgraph" version = "0.5.0-rc.4" -source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#631db7cd14befdf6daf3b7c73e6e36117bffaf59" +source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#56c6e694084210a8405a8cf9e50a1e236a64efd3" [[package]] name = "percent-encoding" @@ -4918,6 +4946,17 @@ version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" +[[package]] +name = "petgraph" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" +dependencies = [ + "fixedbitset", + "hashbrown 0.15.5", + "indexmap", +] + [[package]] name = "phf" version = "0.13.1" @@ -5055,7 +5094,7 @@ checksum = "2f3a9f18d041e6d0e102a0a46750538147e5e8992d3b4873aaafee2520b00ce3" [[package]] name = "polyio" -version = "2.3.1-c1" +version = "2.4.2-c1" dependencies = [ "astral-tokio-tar", "async-compression", @@ -5077,6 +5116,7 @@ dependencies = [ "tokio", "tokio-util", "tracing", + "windows-sys 0.61.2", ] [[package]] @@ -5337,7 +5377,7 @@ checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" [[package]] name = "ragnarok" version = "0.5.0-rc.4" -source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#631db7cd14befdf6daf3b7c73e6e36117bffaf59" +source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#56c6e694084210a8405a8cf9e50a1e236a64efd3" dependencies = [ "euclid", "hotpath", @@ -7138,7 +7178,7 @@ checksum = "7d56353a2a665ad0f41a421187180aab746c8c325620617ad883a99a1cbe66d2" [[package]] name = "torin" version = "0.5.0-rc.4" -source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#631db7cd14befdf6daf3b7c73e6e36117bffaf59" +source = "git+https://github.com/marc2332/freya?branch=fix%2Fskip-basic-render-driver#56c6e694084210a8405a8cf9e50a1e236a64efd3" dependencies = [ "euclid", "itertools 0.14.0", @@ -7300,6 +7340,17 @@ dependencies = [ "windows 0.56.0", ] +[[package]] +name = "tree_magic_mini" +version = "3.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8765b90061cba6c22b5831f675da109ae5561588290f9fa2317adab2714d5a6" +dependencies = [ + "memchr", + "nom 8.0.0", + "petgraph", +] + [[package]] name = "try-lock" version = "0.2.5" @@ -8358,6 +8409,24 @@ version = "0.57.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" +[[package]] +name = "wl-clipboard-rs" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9651471a32e87d96ef3a127715382b2d11cc7c8bb9822ded8a7cc94072eb0a3" +dependencies = [ + "libc", + "log", + "os_pipe", + "rustix 1.1.4", + "thiserror 2.0.18", + "tree_magic_mini", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-protocols-wlr", +] + [[package]] name = "writeable" version = "0.6.3" diff --git a/Cargo.toml b/Cargo.toml index 0546a477..6ef6e423 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,7 +15,8 @@ homepage = "https://polyfrost.org/projects/oneclient" license = "GPL-3.0-only" readme = "README.md" repository = "https://github.com/oiupoyt/OneLauncher-Cracked" -version = "2.3.1-c2" +rust-version = "1.97" +version = "2.4.2-c1" [workspace.dependencies] # core @@ -36,7 +37,7 @@ polyio = {path = "./packages/polyio"} # core (extra) discord-rich-presence = {version = "=1.1.0"} -interfrost = {version = "=1.3.2"} +interfrost = {version = "=1.4.0"} # logging sentry = {version = "=0.48.5", default-features = false, features = [ @@ -103,7 +104,7 @@ sha1 = {version = "=0.10.6", default-features = false} sha2 = {version = "=0.10.9", default-features = false} # util -arboard = {version = "=3.6.1"} +arboard = {version = "=3.6.1", features = ["wayland-data-control"]} arc-swap = {version = "=1.7.1"} base64 = {version = "=0.22.1"} bytes = {version = "=1.11.1"} @@ -113,6 +114,7 @@ dunce = {version = "=1.0.5"} htmd = {version = "=0.5.4"} indicatif = {version = "=0.18.4", features = ["tokio"]} junction = {version = "=2.0.0"} +libc = {version = "=0.2.189"} notify = {version = "=8.2.0"} parking_lot = {version = "=0.12.5"} pulldown-cmark = {version = "=0.13.4", default-features = false} @@ -129,6 +131,7 @@ trash = {version = "=5.2.6"} percent-encoding = {version = "=2.3.2"} url = {version = "=2.5.8", features = ["serde"]} uuid = {version = "=1.23.1", features = ["serde", "v4"]} +windows-sys = {version = "=0.61.2", features = ["Win32_Foundation", "Win32_Storage_FileSystem"]} # util (codegen/macro) anyhow = {version = "=1.0.102"} @@ -160,10 +163,17 @@ inherits = "release" debug = true strip = false +[profile.release-fastprofiling] +inherits = "release" + +codegen-units = 16 +debug = true +lto = false +strip = false + [profile.dev] debug = 1 [profile.dev.package."*"] opt-level = 3 debug = false - diff --git a/README.md b/README.md index 70ea5635..d0134c83 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,73 @@
- OneLauncher Logo +Repository Banner -forked from [OneLauncher](https://github.com/Polyfrost/OneLauncher) allowing for uh offline authentication +# OneClient | OneLauncher +The monorepo containing the code for OneLauncher, OneClient, and their core backend. + +OneClient is a Minecraft client featuring fully 100% open-source components, offering many packaged and pre-configured mods in one click. +OneLauncher is a WIP Minecraft launcher giving power-users the greatest customization whilst featuring a clean UI.
-## download from [**Releases Page**](https://github.com/oiupoyt/OneLauncher-Cracked/releases). -yes the actual client performs normally aswell +## Installing + +You can install the latest release of OneClient from our website: [https://polyfrost.org/projects/oneclient](https://polyfrost.org/projects/oneclient) +as well as our [GitHub releases](https://github.com/Polyfrost/OneLauncher/releases/latest). + +| Windows (x86_64) | macOS (Intel & Apple Silicon) | Linux (x86_64) | +|------------------|-------------------------------|---------------------------------------------------------| +| Installer 🔄 | DMG 🔄 | AppImage 🔄 | +| | App Bundle 🔄 | DEB | +| | | RPM | +| | | [AUR](https://aur.archlinux.org/packages/oneclient-bin) | + +> 🔄 = Has support for autoupdating built-in +## Contributing -intended for offline usage only. +We welcome contributions! Please read our [contributing guidelines](CONTRIBUTING.md) before getting started. +### Requirements + +The project targets **Rust 1.97** or later. You can install Rust via [rustup](https://rustup.rs/). + + +### Building & Running + +```sh +# Run the app +cargo run -p oneclient_app + +# Build a release binary +cargo build -p oneclient_app --release +``` + + +### Packaging / Releasing + +Installers are produced with [**cargo-packager**](https://github.com/crabnebula-dev/cargo-packager) +(the standalone bundler spun out of the Tauri bundler). Config lives in +[`packages/oneclient_app/Cargo.toml`](./packages/oneclient_app/Cargo.toml) under +`[package.metadata.packager]`. + +```sh +cargo install cargo-packager --locked + +# Build the binary, then bundle it for the current OS: +cargo build --release -p oneclient_app +cargo packager --release -p oneclient_app --formats +# Windows: nsis macOS: app,dmg Linux: deb,appimage +``` + + +### Versioning + +The workspace shares a single version, defined in the root [`Cargo.toml`](./Cargo.toml) under `[workspace.package]`. + + +## Code signing + +This program uses free code signing provided by [SignPath.io](https://signpath.io?utm_source=foundation&utm_medium=github&utm_campaign=0install), and a certificate by the [SignPath Foundation](https://signpath.org?utm_source=foundation&utm_medium=github&utm_campaign=0install). We thank them very much to their contributions to OSS software! diff --git a/distribution/copr/oneclient-bin.spec b/distribution/copr/oneclient-bin.spec new file mode 100644 index 00000000..4edf422c --- /dev/null +++ b/distribution/copr/oneclient-bin.spec @@ -0,0 +1,43 @@ +%global debug_package %{nil} +%global __strip /bin/true +%global _appname OneClient +%global _rpmfile %{_appname}_%{version}_linux_x86_64.rpm + +Name: oneclient-bin +Version: 2.0.1 +Release: 1%{?dist} +Summary: Next-generation open source Minecraft launcher (prebuilt) + +License: GPL-3.0-only +URL: https://github.com/Polyfrost/OneLauncher +Source0: %{url}/releases/download/oneclient-%{version}/%{_rpmfile} + +ExclusiveArch: x86_64 +BuildRequires: bsdtar +Requires: gtk3 +Requires: dbus-libs +Provides: oneclient = %{version}-%{release} + +%description +OneClient is a next-generation open source Minecraft launcher. +This package ships the prebuilt binaries from the upstream release. + +%prep +%setup -q -c -T +# Repackages the upstream release rpm; bsdtar reads its cpio payload directly. +bsdtar -xf %{SOURCE0} + +%install +mkdir -p %{buildroot} +cp -a usr %{buildroot}/ +ln -s oneclient_app %{buildroot}%{_bindir}/oneclient + +%files +%{_bindir}/oneclient_app +%{_bindir}/oneclient +%{_datadir}/applications/*.desktop +%{_datadir}/icons/hicolor/*/apps/* + +%changelog +* Wed Sep 09 2026 Polyfrost - 2.0.1-1 +- See upstream release notes. diff --git a/packages/oneclient_app/Cargo.toml b/packages/oneclient_app/Cargo.toml index 332d3406..07c920e7 100644 --- a/packages/oneclient_app/Cargo.toml +++ b/packages/oneclient_app/Cargo.toml @@ -159,7 +159,7 @@ desktop-template = "distribution/linux/org.polyfrost.oneclient.template" auto-req = "builtin" assets = [ { source = "target/release/oneclient_app", dest = "/usr/bin/oneclient_app", mode = "755" }, - { source = "target/release/.cargo-packager/deb/*/data/usr/share/applications/oneclient_app.desktop", dest = "/usr/share/applications/", mode = "644" }, + { source = "target/release/oneclient_app.desktop", dest = "/usr/share/applications/oneclient_app.desktop", mode = "644" }, { source = "icons/32x32.png", dest = "/usr/share/icons/hicolor/32x32/apps/oneclient_app.png", mode = "644" }, { source = "icons/64x64.png", dest = "/usr/share/icons/hicolor/64x64/apps/oneclient_app.png", mode = "644" }, { source = "icons/128x128.png", dest = "/usr/share/icons/hicolor/128x128/apps/oneclient_app.png", mode = "644" }, diff --git a/packages/oneclient_app/assets/backgrounds/CavesAndCliffs.jpg b/packages/oneclient_app/assets/backgrounds/CavesAndCliffs.jpg index 7a951f7b299be26ef13bd4e835d58e8fe0534467..8b0f2e1efd77c2d20e0b162bc44d343302e1dc9e 100644 GIT binary patch literal 399201 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