From 6670d6499b3f80656f9e3d7f4431e4b15749f25b Mon Sep 17 00:00:00 2001 From: Jacob Date: Mon, 29 Dec 2025 16:42:15 +0800 Subject: [PATCH] nuke: skyclient --- apps/oneclient/frontend/src/bindings.gen.ts | 34 ++++----- .../src/routes/app/cluster/browser/index.tsx | 3 - .../routes/app/cluster/browser/package.tsx | 43 +++++------ .../frontend/src/assets/logos/skyclient.png | Bin 751 -> 0 bytes .../src/components/content/PackageItem.tsx | 10 +-- .../src/components/content/ProviderIcon.tsx | 2 - .../app/browser/package.$provider.$id.tsx | 59 +++++++-------- apps/onelauncher/frontend/src/utils/index.ts | 2 +- .../core/src/api/packages/provider/mod.rs | 4 - .../src/api/packages/provider/skyclient.rs | 69 ------------------ packages/core/src/constants.rs | 3 - packages/entity/src/domain/package.rs | 3 - 12 files changed, 70 insertions(+), 162 deletions(-) delete mode 100644 apps/onelauncher/frontend/src/assets/logos/skyclient.png delete mode 100644 packages/core/src/api/packages/provider/skyclient.rs diff --git a/apps/oneclient/frontend/src/bindings.gen.ts b/apps/oneclient/frontend/src/bindings.gen.ts index 52779b34..de01275a 100644 --- a/apps/oneclient/frontend/src/bindings.gen.ts +++ b/apps/oneclient/frontend/src/bindings.gen.ts @@ -220,7 +220,7 @@ export type ProcessPayloadKind = { type: "Starting"; command: string } | { type: export type ProfileUpdate = { res: Resolution | null; force_fullscreen: boolean | null; mem_max: number | null; launch_args: string | null; launch_env: string | null; hook_pre: string | null; hook_wrapper: string | null; hook_post: string | null } -export type Provider = "Modrinth" | "CurseForge" | "SkyClient" +export type Provider = "Modrinth" | "CurseForge" export type Resolution = { width: number; height: number } @@ -303,20 +303,12 @@ export type VersionType = */ "old_beta" -const ARGS_MAP = { 'debug':'{"getArch":[],"getBuildTimestamp":[],"getPlatform":[],"getType":[],"getLocale":[],"getOsVersion":[],"openDevTools":[],"getGitCommitHash":[],"isInDev":[],"getPackageVersion":[],"getFamily":[]}', 'folders':'{"fromCluster":["folder_name"],"openCluster":["folder_name"]}', 'events':'{"process":["event"],"ingress":["event"],"message":["event"]}', 'core':'{"getLogByName":["id","name"],"getClusterById":["id"],"getLogs":["id"],"setDiscordRPCMessage":["message"],"getClusters":[],"getWorlds":["id"],"createSettingsProfile":["name"],"getUsers":[],"isClusterRunning":["cluster_id"],"fetchMinecraftProfile":["uuid"],"getPackage":["provider","slug"],"getScreenshots":["id"],"getRunningProcessesByClusterId":["cluster_id"],"getUsersFromAuthor":["provider","author"],"getLinkedPackages":["cluster_id"],"openMsaLogin":[],"getDefaultUser":["fallback"],"downloadExternalPackage":["package","cluster_id","force","skip_compatibility"],"writeSettings":["setting"],"getUser":["uuid"],"readSettings":[],"fetchLoggedInProfile":["access_token"],"getLoadersForVersion":["mc_version"],"open":["input"],"killProcess":["pid"],"installModpack":["modpack","cluster_id"],"setClusterStage":["id","stage"],"getRunningProcesses":[],"getProfileOrDefault":["name"],"updateClusterProfile":["name","profile"],"removeCluster":["id"],"getGameVersions":[],"getPackageBody":["provider","body"],"getMultiplePackages":["provider","slugs"],"getPackageVersions":["provider","slug","mc_version","loader","offset","limit"],"downloadPackage":["provider","package_id","version_id","cluster_id","skip_compatibility"],"changeSkin":["access_token","skin_url","skin_variant"],"changeCape":["access_token","cape_uuid"],"removeUser":["uuid"],"setDefaultUser":["uuid"],"launchCluster":["id","uuid","search_for_java"],"updateClusterById":["id","request"],"createCluster":["options"],"getGlobalProfile":[],"searchPackages":["provider","query"],"removePackage":["cluster_id","package_hash"],"uploadSkinBytes":["access_token","skin_data","image_format","skin_variant"],"removeCape":["access_token"],"convertUsernameUUID":["username_uuid"]}', 'oneclient':'{"installUpdate":[],"getClustersGroupedByMajor":[],"checkForUpdate":[],"getBundlesFor":["cluster_id"],"getVersions":[]}' } -export type Router = { 'folders': { fromCluster: (folderName: string) => Promise, +const ARGS_MAP = { 'events':'{"process":["event"],"ingress":["event"],"message":["event"]}', 'debug':'{"getArch":[],"getOsVersion":[],"getBuildTimestamp":[],"getLocale":[],"getPlatform":[],"getPackageVersion":[],"getGitCommitHash":[],"openDevTools":[],"isInDev":[],"getType":[],"getFamily":[]}', 'oneclient':'{"getVersions":[],"installUpdate":[],"getBundlesFor":["cluster_id"],"getClustersGroupedByMajor":[],"checkForUpdate":[]}', 'folders':'{"openCluster":["folder_name"],"fromCluster":["folder_name"]}', 'core':'{"getGameVersions":[],"searchPackages":["provider","query"],"setClusterStage":["id","stage"],"getPackageVersions":["provider","slug","mc_version","loader","offset","limit"],"downloadPackage":["provider","package_id","version_id","cluster_id","skip_compatibility"],"getUsersFromAuthor":["provider","author"],"fetchLoggedInProfile":["access_token"],"getUsers":[],"getClusterById":["id"],"getGlobalProfile":[],"launchCluster":["id","uuid","search_for_java"],"createSettingsProfile":["name"],"getLoadersForVersion":["mc_version"],"writeSettings":["setting"],"getPackage":["provider","slug"],"openMsaLogin":[],"uploadSkinBytes":["access_token","skin_data","image_format","skin_variant"],"getRunningProcessesByClusterId":["cluster_id"],"updateClusterById":["id","request"],"removeCape":["access_token"],"readSettings":[],"installModpack":["modpack","cluster_id"],"removeUser":["uuid"],"removeCluster":["id"],"getLinkedPackages":["cluster_id"],"setDiscordRPCMessage":["message"],"open":["input"],"downloadExternalPackage":["package","cluster_id","force","skip_compatibility"],"getDefaultUser":["fallback"],"getScreenshots":["id"],"fetchMinecraftProfile":["uuid"],"killProcess":["pid"],"getMultiplePackages":["provider","slugs"],"getWorlds":["id"],"setDefaultUser":["uuid"],"updateClusterProfile":["name","profile"],"changeSkin":["access_token","skin_url","skin_variant"],"getUser":["uuid"],"getClusters":[],"createCluster":["options"],"removePackage":["cluster_id","package_hash"],"getLogByName":["id","name"],"getLogs":["id"],"getProfileOrDefault":["name"],"convertUsernameUUID":["username_uuid"],"getRunningProcesses":[],"getPackageBody":["provider","body"],"changeCape":["access_token","cape_uuid"],"isClusterRunning":["cluster_id"]}' } +export type Router = { 'events': { ingress: (event: IngressPayload) => Promise, +message: (event: MessagePayload) => Promise, +process: (event: ProcessPayload) => Promise }, +'folders': { fromCluster: (folderName: string) => Promise, openCluster: (folderName: string) => Promise }, -'debug': { openDevTools: () => Promise, -isInDev: () => Promise, -getArch: () => Promise, -getFamily: () => Promise, -getLocale: () => Promise, -getType: () => Promise, -getPlatform: () => Promise, -getOsVersion: () => Promise, -getGitCommitHash: () => Promise, -getBuildTimestamp: () => Promise, -getPackageVersion: () => Promise }, 'oneclient': { getClustersGroupedByMajor: () => Promise>, getBundlesFor: (clusterId: number) => Promise, getVersions: () => Promise, @@ -371,9 +363,17 @@ removeCape: (accessToken: string) => Promise, convertUsernameUUID: (usernameUuid: string) => Promise, setDiscordRPCMessage: (message: string) => Promise, open: (input: string) => Promise }, -'events': { ingress: (event: IngressPayload) => Promise, -message: (event: MessagePayload) => Promise, -process: (event: ProcessPayload) => Promise } }; +'debug': { openDevTools: () => Promise, +isInDev: () => Promise, +getArch: () => Promise, +getFamily: () => Promise, +getLocale: () => Promise, +getType: () => Promise, +getPlatform: () => Promise, +getOsVersion: () => Promise, +getGitCommitHash: () => Promise, +getBuildTimestamp: () => Promise, +getPackageVersion: () => Promise } }; export type { InferCommandOutput } diff --git a/apps/oneclient/frontend/src/routes/app/cluster/browser/index.tsx b/apps/oneclient/frontend/src/routes/app/cluster/browser/index.tsx index 3f53f4bf..aec16e5c 100644 --- a/apps/oneclient/frontend/src/routes/app/cluster/browser/index.tsx +++ b/apps/oneclient/frontend/src/routes/app/cluster/browser/index.tsx @@ -28,9 +28,6 @@ export const Route = createFileRoute('/app/cluster/browser/')({ }, }); -// const PROVIDERS: Array = ['Modrinth', 'CurseForge', 'SkyClient']; -// I don't think SkyClient will get implemented due to hypixel removing 1.8 support and SkyClient is only really for old 1.8 mods that aren't on a provider -// High chance we can just one day nuke the entire unfinished implementation const PROVIDERS: Array = ['Modrinth', 'CurseForge']; function RouteComponent() { diff --git a/apps/oneclient/frontend/src/routes/app/cluster/browser/package.tsx b/apps/oneclient/frontend/src/routes/app/cluster/browser/package.tsx index 2310da71..432ddf13 100644 --- a/apps/oneclient/frontend/src/routes/app/cluster/browser/package.tsx +++ b/apps/oneclient/frontend/src/routes/app/cluster/browser/package.tsx @@ -94,7 +94,6 @@ function getPackageUrl(pkg: ManagedPackage): string { switch (pkg.provider) { case 'Modrinth': return `https://modrinth.com/project/${pkg.slug}`; case 'CurseForge': return `https://www.curseforge.com/minecraft/${pkg.package_type}s/${pkg.slug}`; - case 'SkyClient': return ``; } } @@ -128,12 +127,10 @@ function BrowserSidebar({ package: pkg }: { package: ManagedPackage }) {

{pkg.short_desc}

- {pkg.provider !== 'SkyClient' && ( -
- - {abbreviateNumber(pkg.downloads)} -
- )} +
+ + {abbreviateNumber(pkg.downloads)} +
@@ -151,23 +148,23 @@ function BrowserSidebar({ package: pkg }: { package: ManagedPackage }) { {(Object.entries(pkg.links) as Array<[keyof typeof pkg.links, typeof pkg.links[keyof typeof pkg.links]]>).filter(a => a[1]).map(link => typeof link[1] == 'string' ? ( - - ) + + ) : (link[1] as Array).map(donationLink => ( - - )))} + + )))} diff --git a/apps/onelauncher/frontend/src/assets/logos/skyclient.png b/apps/onelauncher/frontend/src/assets/logos/skyclient.png deleted file mode 100644 index 1879366c07be1bc7092dc6db23dd5afa0a84e3ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 751 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10!Ysfi#1%;Y|NnpD?M%5n z#mWZr-UD(t3p^r=85sBugD~Uq{1qucLG}_)Usv{LOib)N z?62ps{sZcn?CIhdVsW~5^214o6*yW%JEUB9R{x*Am(_Ru-{AB)Za*TXU0G5h7I^OE z=~G7(>;!+E*?dB6T~L`1-^AL$)K0afTZLTGR=xijb(Hgb()K9?l&x>g;d<`LAi>`PaI}+F5u%1ET z{Kbh$d~L~mj2hj{BA*z49Fun5%;4Z~@oy-fw@l@qPjy_J^{f&T54Y@I;OzQ_QRzYF z?(dG#bD5vFbO~_CCx5y3o_zv?Lxs7;=i--(Uw&cyHsi!{%jq4G+cr%x>w4AFu&Uz} z&jGQd%Q7$4-dT0(hE?cU#@S{cc@j2#HGH>H(7{Fb-frC~tKD|=8-<0qd|=Gcvu02c zJD0)jXK2t;WrRpye?_N7qw>55h)!LlP>NgqAg~yyL`&1`* zv5@(1OzoQI%s)E2c@Bx`usrzs^iI8f%L414wp>4(>=r$Ibj!s#{q@s#`SG=*7zg7M*OfVGIHO$->3XCz;64!{5l*E!$tK_0oAjM#0U}U6g074-K v=2nJ=R)%KU1_o9J2D)>(AE9W-%}>cptHiA#=D_ASpaup{S3j3^P6{item.description}

- -
- - {abbreviateNumber(item.downloads)} -
-
+
+ + {abbreviateNumber(item.downloads)} +
diff --git a/apps/onelauncher/frontend/src/components/content/ProviderIcon.tsx b/apps/onelauncher/frontend/src/components/content/ProviderIcon.tsx index ba226f26..0d986ac7 100644 --- a/apps/onelauncher/frontend/src/components/content/ProviderIcon.tsx +++ b/apps/onelauncher/frontend/src/components/content/ProviderIcon.tsx @@ -2,7 +2,6 @@ import type { ImgHTMLAttributes, RefAttributes } from 'react'; import CurseForgeIcon from '@/assets/logos/curseforge.svg'; import VanillaImage from '@/assets/logos/minecraft.png'; import ModrinthIcon from '@/assets/logos/modrinth.svg'; -import SkyClientImage from '@/assets/logos/skyclient.png'; export function getProviderLogoSrc(provider: string): string { const providerName = provider.toLowerCase(); @@ -10,7 +9,6 @@ export function getProviderLogoSrc(provider: string): string { const mapping: Record = { modrinth: ModrinthIcon, curseforge: CurseForgeIcon, - skyclient: SkyClientImage, }; return mapping[providerName]; diff --git a/apps/onelauncher/frontend/src/routes/app/browser/package.$provider.$id.tsx b/apps/onelauncher/frontend/src/routes/app/browser/package.$provider.$id.tsx index c8bf9f0f..ab84165f 100644 --- a/apps/onelauncher/frontend/src/routes/app/browser/package.$provider.$id.tsx +++ b/apps/onelauncher/frontend/src/routes/app/browser/package.$provider.$id.tsx @@ -113,7 +113,6 @@ function getPackageUrl(pkg: ManagedPackage): string { switch (pkg.provider) { case 'Modrinth': return `https://modrinth.com/project/${pkg.slug}`; case 'CurseForge': return `https://www.curseforge.com/minecraft/${pkg.package_type}s/${pkg.slug}`; - case 'SkyClient': return ``; } } @@ -147,12 +146,10 @@ function BrowserSidebar({ package: pkg }: { package: ManagedPackage }) {

{pkg.short_desc}

- -
- - {abbreviateNumber(pkg.downloads)} -
-
+
+ + {abbreviateNumber(pkg.downloads)} +
@@ -170,23 +167,23 @@ function BrowserSidebar({ package: pkg }: { package: ManagedPackage }) { {(Object.entries(pkg.links) as Array<[keyof typeof pkg.links, typeof pkg.links[keyof typeof pkg.links]]>).filter(a => a[1]).map(link => typeof link[1] == 'string' ? ( - - ) + + ) : (link[1] as Array).map(donationLink => ( - - )))} + + )))} @@ -288,16 +285,16 @@ function InstallButton() { {browserContext.cluster ? version ? ( - - Download latest to -
- {browserContext.cluster.name} -
- ) + + Download latest to +
+ {browserContext.cluster.name} +
+ ) : versionsLoading ? 'Looking for a version...' : 'No matching version found' : (clusters?.length ?? 0) > 0 - ? 'Select a Cluster' - : 'No clusters'} + ? 'Select a Cluster' + : 'No clusters'} diff --git a/apps/onelauncher/frontend/src/utils/index.ts b/apps/onelauncher/frontend/src/utils/index.ts index 15db87a6..1bed8a1f 100644 --- a/apps/onelauncher/frontend/src/utils/index.ts +++ b/apps/onelauncher/frontend/src/utils/index.ts @@ -27,7 +27,7 @@ export const ProviderNames: Record = { legacyfabric: 'Legacy Fabric', } as const; -export const PROVIDERS = ['Modrinth', 'CurseForge', 'SkyClient'] as const; +export const PROVIDERS = ['Modrinth', 'CurseForge'] as const; export const PACKAGE_TYPES = ['mod', 'resourcepack', 'datapack', 'shaderpack'] as const; export function pluralize(n: number, word: string, locale: string = 'en'): string { diff --git a/packages/core/src/api/packages/provider/mod.rs b/packages/core/src/api/packages/provider/mod.rs index 20b6876f..a4551f40 100644 --- a/packages/core/src/api/packages/provider/mod.rs +++ b/packages/core/src/api/packages/provider/mod.rs @@ -15,11 +15,9 @@ pub(crate) mod tests; mod curseforge; mod modrinth; -// mod skyclient; pub use curseforge::CurseForgeProviderImpl; pub use modrinth::ModrinthProviderImpl; -// pub use skyclient::SkyClientProviderImpl; #[async_trait::async_trait] pub trait ProviderExt { @@ -66,8 +64,6 @@ macro_rules! delegate { match $self { Provider::Modrinth => ModrinthProviderImpl.$method($($arg),*).await, Provider::CurseForge => CurseForgeProviderImpl.$method($($arg),*).await, - // Provider::SkyClient => SkyClientProviderImpl.$method($($arg),*).await, - _ => todo!("skyclient not implement") } }; } diff --git a/packages/core/src/api/packages/provider/skyclient.rs b/packages/core/src/api/packages/provider/skyclient.rs deleted file mode 100644 index f974f231..00000000 --- a/packages/core/src/api/packages/provider/skyclient.rs +++ /dev/null @@ -1,69 +0,0 @@ -use std::collections::HashMap; - -use onelauncher_entity::loader::GameLoader; - -use crate::api::packages::data::{ - ManagedPackage, ManagedUser, ManagedVersion, PackageAuthor, SearchQuery, SearchResult, -}; -use crate::api::packages::provider::ProviderExt; -use crate::error::LauncherResult; -use crate::utils::pagination::Paginated; - -#[derive(Default)] -pub struct SkyClientProviderImpl; - -#[async_trait::async_trait] -impl ProviderExt for SkyClientProviderImpl { - async fn search(&self, query: &SearchQuery) -> LauncherResult> { - todo!("SkyClient search not implemented yet") - } - - async fn get(&self, slug: &str) -> LauncherResult { - todo!("SkyClient get package not implemented yet") - } - - async fn get_multiple(&self, slugs: &[String]) -> LauncherResult> { - todo!("SkyClient get multiple packages not implemented yet") - } - - async fn get_versions_by_hashes( - &self, - hashes: &[String], - ) -> LauncherResult> { - todo!("SkyClient get versions by hashes not implemented yet") - } - - async fn get_version_by_hash(&self, hash: &str) -> LauncherResult> { - todo!("SkyClient get version by hash not implemented yet") - } - - async fn get_users_from_author( - &self, - author: PackageAuthor, - ) -> LauncherResult> { - todo!("SkyClient get users from author not implemented yet") - } - - // async fn get_users(&self, slugs: &[String]) -> LauncherResult> { - // todo!("SkyClient get users not implemented yet") - // } - - // async fn get_user(&self, slug: &str) -> LauncherResult { - // todo!("SkyClient get user not implemented yet") - // } - - async fn get_versions_paginated( - &self, - slug: &str, - mc_version: Option, - loader: Option, - offset: usize, - limit: usize, - ) -> LauncherResult> { - todo!("SkyClient get versions paginated not implemented yet") - } - - async fn get_versions(&self, slugs: &[String]) -> LauncherResult> { - todo!("SkyClient get versions not implemented yet") - } -} diff --git a/packages/core/src/constants.rs b/packages/core/src/constants.rs index 6d00c3d3..226cf664 100644 --- a/packages/core/src/constants.rs +++ b/packages/core/src/constants.rs @@ -29,9 +29,6 @@ pub const METADATA_API_URL: &str = "https://meta.polyfrost.org"; pub const FEATURED_PACKAGES_URL: &str = "https://polyfrost.org/meta/onelauncher/featured.json"; /// / API base url. pub const MCLOGS_API_URL: &str = "https://api.mclo.gs/1"; -/// metadata base url. -pub const SKYCLIENT_BASE_URL: &str = - "https://raw.githubusercontent.com/SkyblockClient/SkyblockClient-REPO/refs/heads/main/v1"; // =========== Hacky Mojang-spec OS constants =========== #[cfg(target_os = "windows")] diff --git a/packages/entity/src/domain/package.rs b/packages/entity/src/domain/package.rs index e59da9ac..0524b9da 100644 --- a/packages/entity/src/domain/package.rs +++ b/packages/entity/src/domain/package.rs @@ -70,7 +70,6 @@ impl ToString for PackageType { pub enum Provider { Modrinth = 0, CurseForge = 1, - SkyClient = 2, } impl Display for Provider { @@ -85,7 +84,6 @@ impl Provider { match self { Self::Modrinth => "Modrinth", Self::CurseForge => "CurseForge", - Self::SkyClient => "SkyClient", } } @@ -95,7 +93,6 @@ impl Provider { match self { Self::Modrinth => "https://modrinth.com/", Self::CurseForge => "https://curseforge.com/", - Self::SkyClient => "https://skyclient.co/", } }