diff --git a/apps/oneclient/frontend/src/bindings.gen.ts b/apps/oneclient/frontend/src/bindings.gen.ts index e526ef3d..23c4f6e2 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,8 +303,18 @@ export type VersionType = */ "old_beta" -const ARGS_MAP = { 'oneclient':'{"installUpdate":[],"getClustersGroupedByMajor":[],"checkForUpdate":[],"getBundlesFor":["cluster_id"],"getVersions":[]}', '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"]}', 'folders':'{"fromCluster":["folder_name"],"openCluster":["folder_name"]}', 'debug':'{"getArch":[],"getBuildTimestamp":[],"getPlatform":[],"getType":[],"getLocale":[],"getOsVersion":[],"openDevTools":[],"getGitCommitHash":[],"isInDev":[],"getPackageVersion":[],"getFamily":[]}' } -export type Router = { 'debug': { openDevTools: () => Promise, +const ARGS_MAP = { 'oneclient':'{"getVersions":[],"getClustersGroupedByMajor":[],"getBundlesFor":["cluster_id"],"installUpdate":[],"checkForUpdate":[]}', 'folders':'{"fromCluster":["folder_name"],"openCluster":["folder_name"]}', 'core':'{"searchPackages":["provider","query"],"getPackageBody":["provider","body"],"convertUsernameUUID":["username_uuid"],"getScreenshots":["id"],"getUsersFromAuthor":["provider","author"],"fetchMinecraftProfile":["uuid"],"setDefaultUser":["uuid"],"getGlobalProfile":[],"getMultiplePackages":["provider","slugs"],"updateClusterById":["id","request"],"getPackageVersions":["provider","slug","mc_version","loader","offset","limit"],"getRunningProcessesByClusterId":["cluster_id"],"getRunningProcesses":[],"changeSkin":["access_token","skin_url","skin_variant"],"installModpack":["modpack","cluster_id"],"getWorlds":["id"],"getPackage":["provider","slug"],"getLinkedPackages":["cluster_id"],"changeCape":["access_token","cape_uuid"],"getClusters":[],"createSettingsProfile":["name"],"downloadExternalPackage":["package","cluster_id","force","skip_compatibility"],"launchCluster":["id","uuid","search_for_java"],"setClusterStage":["id","stage"],"setDiscordRPCMessage":["message"],"open":["input"],"getClusterById":["id"],"getLogByName":["id","name"],"downloadPackage":["provider","package_id","version_id","cluster_id","skip_compatibility"],"fetchLoggedInProfile":["access_token"],"uploadSkinBytes":["access_token","skin_data","image_format","skin_variant"],"isClusterRunning":["cluster_id"],"removeCape":["access_token"],"createCluster":["options"],"updateClusterProfile":["name","profile"],"getGameVersions":[],"removePackage":["cluster_id","package_hash"],"removeCluster":["id"],"getLogs":["id"],"getUser":["uuid"],"getProfileOrDefault":["name"],"getUsers":[],"removeUser":["uuid"],"getDefaultUser":["fallback"],"openMsaLogin":[],"killProcess":["pid"],"readSettings":[],"getLoadersForVersion":["mc_version"],"writeSettings":["setting"]}', 'events':'{"ingress":["event"],"process":["event"],"message":["event"]}', 'debug':'{"getGitCommitHash":[],"getBuildTimestamp":[],"getPackageVersion":[],"getPlatform":[],"getType":[],"getLocale":[],"getArch":[],"getFamily":[],"isInDev":[],"openDevTools":[],"getOsVersion":[]}' } +export type Router = { 'events': { ingress: (event: IngressPayload) => Promise, +message: (event: MessagePayload) => Promise, +process: (event: ProcessPayload) => Promise }, +'oneclient': { getClustersGroupedByMajor: () => Promise>, +getBundlesFor: (clusterId: number) => Promise, +getVersions: () => Promise, +checkForUpdate: () => Promise, +installUpdate: () => Promise }, +'folders': { fromCluster: (folderName: string) => Promise, +openCluster: (folderName: string) => Promise }, +'debug': { openDevTools: () => Promise, isInDev: () => Promise, getArch: () => Promise, getFamily: () => Promise, @@ -315,11 +325,6 @@ getOsVersion: () => Promise, getGitCommitHash: () => Promise, getBuildTimestamp: () => Promise, getPackageVersion: () => Promise }, -'events': { ingress: (event: IngressPayload) => Promise, -message: (event: MessagePayload) => Promise, -process: (event: ProcessPayload) => Promise }, -'folders': { fromCluster: (folderName: string) => Promise, -openCluster: (folderName: string) => Promise }, 'core': { getClusters: () => Promise, getClusterById: (id: number) => Promise, removeCluster: (id: number) => Promise, @@ -368,12 +373,7 @@ changeCape: (accessToken: string, capeUuid: string) => Promise Promise, convertUsernameUUID: (usernameUuid: string) => Promise, setDiscordRPCMessage: (message: string) => Promise, -open: (input: string) => Promise }, -'oneclient': { getClustersGroupedByMajor: () => Promise>, -getBundlesFor: (clusterId: number) => Promise, -getVersions: () => Promise, -checkForUpdate: () => Promise, -installUpdate: () => Promise } }; +open: (input: string) => 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 1879366c..00000000 Binary files a/apps/onelauncher/frontend/src/assets/logos/skyclient.png and /dev/null differ diff --git a/apps/onelauncher/frontend/src/components/content/PackageItem.tsx b/apps/onelauncher/frontend/src/components/content/PackageItem.tsx index 8cd40969..938ddfeb 100644 --- a/apps/onelauncher/frontend/src/components/content/PackageItem.tsx +++ b/apps/onelauncher/frontend/src/components/content/PackageItem.tsx @@ -87,12 +87,10 @@ export function PackageItem({ provider, ...item }: SearchResult & { provider: Pr

{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/", } }