From 4a5b42166380b3ff39c01914ec8ce262b558aac6 Mon Sep 17 00:00:00 2001 From: sassan <125366201+emirsassan@users.noreply.github.com> Date: Wed, 26 Mar 2025 11:39:00 +0300 Subject: [PATCH 1/3] removed csp rules everything works without rules --- apps/desktop/tauri.conf.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/desktop/tauri.conf.json b/apps/desktop/tauri.conf.json index 223b7253..7b53ec56 100644 --- a/apps/desktop/tauri.conf.json +++ b/apps/desktop/tauri.conf.json @@ -6,7 +6,7 @@ "withGlobalTauri": true, "macOSPrivateApi": true, "security": { - "csp": "img-src 'self' asset: http://asset.localhost", + "csp": null, "assetProtocol": { "enable": true, "scope": { From f04106680233cf8665b59f9b97c1e393c36d359e Mon Sep 17 00:00:00 2001 From: sassan <125366201+emirsassan@users.noreply.github.com> Date: Wed, 26 Mar 2025 11:39:30 +0300 Subject: [PATCH 2/3] hacky way to solve missing java installation needs more testing still inconsistent sometimes --- apps/frontend/src/ui/pages/settings/game/SettingsMinecraft.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/frontend/src/ui/pages/settings/game/SettingsMinecraft.tsx b/apps/frontend/src/ui/pages/settings/game/SettingsMinecraft.tsx index fe7b9a8c..81ae3f18 100644 --- a/apps/frontend/src/ui/pages/settings/game/SettingsMinecraft.tsx +++ b/apps/frontend/src/ui/pages/settings/game/SettingsMinecraft.tsx @@ -478,6 +478,7 @@ function ClusterJavaVersionModal(props: ModalProps & { if (!javaVersion) { const clusterId = props.clusterId; const optimal = await tryResult(() => bridge.commands.getOptimalJavaVersion(clusterId)); + setPackage(optimal, optimal.version) setSelected(javaVersions().findIndex(([_, meta]) => meta.path === optimal.path)); } else { From 6792d3e545dce4d9a015ef18325fb89de52c9331 Mon Sep 17 00:00:00 2001 From: sassan <125366201+emirsassan@users.noreply.github.com> Date: Fri, 28 Mar 2025 15:12:01 +0300 Subject: [PATCH 3/3] feat: Add Java management commands and enhance game settings UI - Introduced `check_java` and `locate_java` commands for Java version management. - Updated `GameSettings` and `JvmSettings` components to include memory settings. - Enhanced UI for Java settings with auto-detection and search functionality for Java executables. - Removed unused memory settings from the UI to streamline the user experience. man i like this ai commit message --- apps/desktop/src/api/commands/mod.rs | 14 + .../src/ui/pages/cluster/ClusterSettings.tsx | 2 +- .../pages/settings/game/SettingsMinecraft.tsx | 364 ++++++++++-------- 3 files changed, 212 insertions(+), 168 deletions(-) diff --git a/apps/desktop/src/api/commands/mod.rs b/apps/desktop/src/api/commands/mod.rs index 59f68ffc..7e89b2c7 100644 --- a/apps/desktop/src/api/commands/mod.rs +++ b/apps/desktop/src/api/commands/mod.rs @@ -89,6 +89,8 @@ macro_rules! collect_commands { get_zulu_packages, install_java_from_package, open_dev_tools, + check_java, + locate_java, ] }}; } @@ -118,6 +120,18 @@ pub async fn get_featured_packages() -> Result Result, String> { + Ok(onelauncher::java::check_java(path).await?) +} + +#[specta::specta] +#[tauri::command] +pub async fn locate_java() -> Result, String> { + Ok(onelauncher::utils::java::locate_java().await.map_err(|e| e.to_string())?) +} + #[specta::specta] #[tauri::command] pub fn get_program_info() -> Result { diff --git a/apps/frontend/src/ui/pages/cluster/ClusterSettings.tsx b/apps/frontend/src/ui/pages/cluster/ClusterSettings.tsx index d58bb81a..3317ae9c 100644 --- a/apps/frontend/src/ui/pages/cluster/ClusterSettings.tsx +++ b/apps/frontend/src/ui/pages/cluster/ClusterSettings.tsx @@ -80,7 +80,6 @@ function PageSettings(cluster: Accessor) { @@ -107,6 +106,7 @@ function PageSettings(cluster: Accessor) { javaVersions, javaArgs, envVars, + memory, }} /> diff --git a/apps/frontend/src/ui/pages/settings/game/SettingsMinecraft.tsx b/apps/frontend/src/ui/pages/settings/game/SettingsMinecraft.tsx index 81ae3f18..1edd963b 100644 --- a/apps/frontend/src/ui/pages/settings/game/SettingsMinecraft.tsx +++ b/apps/frontend/src/ui/pages/settings/game/SettingsMinecraft.tsx @@ -1,8 +1,7 @@ -import type { JavaVersion, JavaVersions, JavaZuluPackage, Memory, Resolution } from '@onelauncher/client/bindings'; -import { ActivityIcon, CpuChip01Icon, Database01Icon, Download01Icon, EyeIcon, FilePlus02Icon, FileX02Icon, LayoutTopIcon, Maximize01Icon, ParagraphWrapIcon, VariableIcon, XIcon } from '@untitled-theme/icons-solid'; +import type { JavaVersion, JavaVersions, Memory, Resolution } from '@onelauncher/client/bindings'; +import { ActivityIcon, CpuChip01Icon, Database01Icon, EyeIcon, FilePlus02Icon, FileX02Icon, FolderSearchIcon, LayoutTopIcon, ListIcon, Maximize01Icon, ParagraphWrapIcon, VariableIcon, XIcon } from '@untitled-theme/icons-solid'; import { bridge } from '~imports'; import Button from '~ui/components/base/Button'; -import Dropdown from '~ui/components/base/Dropdown'; import TextField from '~ui/components/base/TextField'; import Toggle from '~ui/components/base/Toggle'; import Modal, { createModal, type ModalProps } from '~ui/components/overlay/Modal'; @@ -13,6 +12,8 @@ import { tryResult } from '~ui/hooks/useCommand'; import useSettings from '~ui/hooks/useSettings'; import { asEnvVariables } from '~utils'; import { type Accessor, createMemo, createResource, createSignal, For, onMount, type Setter, Show, splitProps, untrack } from 'solid-js'; +import { open } from '@tauri-apps/plugin-dialog'; +import useNotifications from '~ui/hooks/useNotifications'; function SettingsMinecraft() { return ( @@ -106,7 +107,6 @@ function SettingsRow(props: SettingsRowProps & { export function GameSettings(props: { fullscreen: CreateSetting; resolution: CreateSetting; - memory: CreateSetting; }) { return ( <> @@ -150,45 +150,6 @@ export function GameSettings(props: { /> - - {/* TODO: make this a memory slider */} - } - isGlobal={props.memory.isGlobal} - reset={props.memory.resetToFallback} - title="Memory" - > -
-
- Min: - { - props.memory.set({ minimum: Number.parseInt(value), maximum: props.memory.get().maximum }); - }} - value={props.memory.get().minimum} - /> -
- -
- Max: - { - props.memory.set({ minimum: props.memory.get().minimum, maximum: Number.parseInt(value) }); - }} - value={props.memory.get().maximum} - /> -
-
-
); } @@ -298,6 +259,7 @@ export function ProcessSettings(props: { export function JvmSettings(props: { javaArgs: CreateSetting; envVars: CreateSetting<[string, string][]>; + memory: CreateSetting; } & ({ clusterId: string; javaVersion: CreateSetting; @@ -309,11 +271,14 @@ export function JvmSettings(props: { const modal = createModal((controller) => { if (props.javaVersion) return ( - ); else return ( @@ -326,55 +291,21 @@ export function JvmSettings(props: { return ( <> - Java + Java and Memory } isGlobal={() => true} reset={() => {}} - title="Version" + title="Java Version and Memory" >