diff --git a/packages/oneclient_app/src/view/app/cluster/cluster_settings.rs b/packages/oneclient_app/src/view/app/cluster/cluster_settings.rs index 34e2bd22..7190ac43 100644 --- a/packages/oneclient_app/src/view/app/cluster/cluster_settings.rs +++ b/packages/oneclient_app/src/view/app/cluster/cluster_settings.rs @@ -79,21 +79,11 @@ impl Component for ClusterSettings { } .into_element(), ) - .child( - ToggleRow { - cluster_id, - field: BoolField::PerfFlags, - value: profile.perf_flags, - global: global.perf_flags.unwrap_or(true), - } - .into_element(), - ) .child(text_row(cluster_id, TextField::JvmArgs, &profile, &global)) .child(section_header("GAME")) .child( ToggleRow { cluster_id, - field: BoolField::ForceFullscreen, value: profile.force_fullscreen, global: global.force_fullscreen.unwrap_or(false), } @@ -135,7 +125,6 @@ impl Component for ClusterSettings { #[derive(Clone, Copy, PartialEq)] enum Field { ForceFullscreen, - PerfFlags, Resolution, MemMax, JavaPath, @@ -145,7 +134,6 @@ fn clear_update(field: Field) -> ProfileUpdate { let mut u = ProfileUpdate::default(); match field { Field::ForceFullscreen => u.force_fullscreen = Patch::Clear, - Field::PerfFlags => u.perf_flags = Patch::Clear, Field::Resolution => u.resolution = Patch::Clear, Field::MemMax => u.mem_max = Patch::Clear, Field::JavaPath => u.java_path = Patch::Clear, @@ -153,45 +141,6 @@ fn clear_update(field: Field) -> ProfileUpdate { u } -#[derive(Clone, Copy, PartialEq)] -enum BoolField { - ForceFullscreen, - PerfFlags, -} - -impl BoolField { - fn meta(self) -> (IconType, &'static str, &'static str) { - match self { - Self::ForceFullscreen => ( - IconType::Maximize01, - "Force Fullscreen", - "Force Minecraft to start in fullscreen mode.", - ), - Self::PerfFlags => ( - IconType::Rocket02, - "Performance JVM Flags", - "Tune the garbage collector, heap and string deduplication to suit this cluster's Java runtime.", - ), - } - } - - fn patch(self, value: Patch) -> ProfileUpdate { - let mut u = ProfileUpdate::default(); - match self { - Self::ForceFullscreen => u.force_fullscreen = value, - Self::PerfFlags => u.perf_flags = value, - } - u - } - - fn field(self) -> Field { - match self { - Self::ForceFullscreen => Field::ForceFullscreen, - Self::PerfFlags => Field::PerfFlags, - } - } -} - fn runtime_label(runtime: &JavaRuntime) -> String { format!("{} {} ({})", runtime.vendor, runtime.major, runtime.version) } @@ -231,7 +180,6 @@ fn override_cell( #[derive(PartialEq)] struct ToggleRow { cluster_id: i64, - field: BoolField, value: Option, global: bool, } @@ -239,7 +187,6 @@ struct ToggleRow { impl Component for ToggleRow { fn render(&self) -> impl IntoElement { let cluster_id = self.cluster_id; - let field = self.field; let overridden = self.value.is_some(); let global = self.global; let dispatch = use_dispatch(); @@ -255,22 +202,27 @@ impl Component for ToggleRow { return; } last.set(v); - dispatch.update_cluster_profile(cluster_id, field.patch(Patch::Set(v))); + dispatch.update_cluster_profile( + cluster_id, + ProfileUpdate { + force_fullscreen: Patch::Set(v), + ..Default::default() + }, + ); }); } let on_reset: EventHandler<()> = (move |()| { last.set(global); state.set(global); - dispatch.update_cluster_profile(cluster_id, clear_update(field.field())); + dispatch.update_cluster_profile(cluster_id, clear_update(Field::ForceFullscreen)); }) .into(); - let (icon, title, description) = field.meta(); settings_row( - icon, - title, - description, + IconType::Maximize01, + "Force Fullscreen", + "Force Minecraft to start in fullscreen mode.", override_cell(toggle(state), overridden, on_reset), ) } diff --git a/packages/oneclient_app/src/view/app/settings/minecraft.rs b/packages/oneclient_app/src/view/app/settings/minecraft.rs index 5b8f0749..e4797bdb 100644 --- a/packages/oneclient_app/src/view/app/settings/minecraft.rs +++ b/packages/oneclient_app/src/view/app/settings/minecraft.rs @@ -38,10 +38,6 @@ impl Component for SettingsMinecraft { let v = profile.mem_max.map(|m| m.to_string()).unwrap_or_default(); move || v }); - let perf_flags = use_state({ - let v = profile.perf_flags.unwrap_or(true); - move || v - }); let jvm_args = use_state({ let v = profile.launch_args.clone().unwrap_or_default(); move || v @@ -66,7 +62,6 @@ impl Component for SettingsMinecraft { &width.read(), &height.read(), &memory.read(), - *perf_flags.read(), &jvm_args.read(), &pre_launch_command.read(), &wrapper_command.read(), @@ -99,12 +94,6 @@ impl Component for SettingsMinecraft { "The amount of memory in megabytes allocated for the game.", memory_field(memory), )) - .child(settings_row( - IconType::Rocket02, - "Performance JVM Flags", - "Tune the garbage collector, heap and string deduplication to suit whichever Java runtime a cluster launches with.", - toggle(perf_flags), - )) .child(settings_row( IconType::Terminal, "JVM Arguments", @@ -148,7 +137,6 @@ fn build_update( width: &str, height: &str, memory: &str, - perf_flags: bool, jvm_args: &str, pre: &str, wrapper: &str, @@ -171,7 +159,6 @@ fn build_update( force_fullscreen: Patch::Set(fullscreen), resolution, mem_max, - perf_flags: Patch::Set(perf_flags), launch_args: command_patch(jvm_args), hook_pre: command_patch(pre), hook_wrapper: command_patch(wrapper), diff --git a/packages/oneclient_cluster/src/profile.rs b/packages/oneclient_cluster/src/profile.rs index 4f611019..ecaa5fa8 100644 --- a/packages/oneclient_cluster/src/profile.rs +++ b/packages/oneclient_cluster/src/profile.rs @@ -17,7 +17,6 @@ pub struct GameSettingsProfile { pub hook_wrapper: Option, pub hook_post: Option, pub os_extra: Option, - pub perf_flags: Option, } // `Resolution` moved to oneclient_common: the launch-argument builder needs it @@ -63,7 +62,6 @@ impl GameSettingsProfile { hook_wrapper: None, hook_post: None, os_extra: Some(SettingsOsExtra::default()), - perf_flags: Some(true), } } @@ -102,9 +100,6 @@ impl GameSettingsProfile { if self.os_extra.is_none() { self.os_extra = global.os_extra.clone(); } - if self.perf_flags.is_none() { - self.perf_flags = global.perf_flags; - } } pub fn from_row(row: SettingProfileRow) -> crate::ClusterResult { @@ -126,7 +121,6 @@ impl GameSettingsProfile { .os_extra .map(|json| serde_json::from_str(&json)) .transpose()?, - perf_flags: row.perf_flags.map(|v| v != 0), }) } @@ -150,7 +144,6 @@ impl GameSettingsProfile { .as_ref() .map(serde_json::to_string) .transpose()?, - perf_flags: self.perf_flags.map(i64::from), }) } } diff --git a/packages/oneclient_cluster/src/profiles.rs b/packages/oneclient_cluster/src/profiles.rs index c56910fe..4e6cbdd2 100644 --- a/packages/oneclient_cluster/src/profiles.rs +++ b/packages/oneclient_cluster/src/profiles.rs @@ -132,7 +132,6 @@ pub struct ProfileUpdate { pub hook_wrapper: Patch, pub hook_post: Patch, pub os_extra: Patch, - pub perf_flags: Patch, } impl ProfileUpdate { @@ -152,7 +151,6 @@ impl ProfileUpdate { self.hook_post .apply_to_command_option(&mut profile.hook_post); self.os_extra.apply_to_option(&mut profile.os_extra); - self.perf_flags.apply_to_option(&mut profile.perf_flags); } } diff --git a/packages/oneclient_core/src/game/launch.rs b/packages/oneclient_core/src/game/launch.rs index 4289dd10..863d322e 100644 --- a/packages/oneclient_core/src/game/launch.rs +++ b/packages/oneclient_core/src/game/launch.rs @@ -265,7 +265,6 @@ pub async fn launch_cluster( profile.launch_args.clone().unwrap_or_default(), &java.os_arch, java.major, - profile.perf_flags.unwrap_or(true), )?; let mut mc_args = arguments::minecraft_arguments( diff --git a/packages/oneclient_db/.sqlx/query-1408ae02e47afa471a08ae0279997066a17d6048d02e26eeb5ff88ad5275c6b5.json b/packages/oneclient_db/.sqlx/query-4ab22fa481720e3bae5befee821fe1c0689d666f8bbcde98890e2d4715e9bc80.json similarity index 87% rename from packages/oneclient_db/.sqlx/query-1408ae02e47afa471a08ae0279997066a17d6048d02e26eeb5ff88ad5275c6b5.json rename to packages/oneclient_db/.sqlx/query-4ab22fa481720e3bae5befee821fe1c0689d666f8bbcde98890e2d4715e9bc80.json index 285ff316..58a0b670 100644 --- a/packages/oneclient_db/.sqlx/query-1408ae02e47afa471a08ae0279997066a17d6048d02e26eeb5ff88ad5275c6b5.json +++ b/packages/oneclient_db/.sqlx/query-4ab22fa481720e3bae5befee821fe1c0689d666f8bbcde98890e2d4715e9bc80.json @@ -1,6 +1,6 @@ { "db_name": "SQLite", - "query": "\n\t\tSELECT name, java_path, resolution, force_fullscreen, mem_max, launch_args, launch_env,\n\t\t hook_pre, hook_wrapper, hook_post, os_extra, perf_flags\n\t\tFROM setting_profiles\n\t\tORDER BY name ASC\n\t\t", + "query": "\n\t\tSELECT name, java_path, resolution, force_fullscreen, mem_max, launch_args, launch_env,\n\t\t hook_pre, hook_wrapper, hook_post, os_extra\n\t\tFROM setting_profiles\n\t\tORDER BY name ASC\n\t\t", "describe": { "columns": [ { @@ -123,17 +123,6 @@ "name": "os_extra" } } - }, - { - "name": "perf_flags", - "ordinal": 11, - "type_info": "Integer", - "origin": { - "Table": { - "table": "setting_profiles", - "name": "perf_flags" - } - } } ], "parameters": { @@ -150,9 +139,8 @@ true, true, true, - true, true ] }, - "hash": "1408ae02e47afa471a08ae0279997066a17d6048d02e26eeb5ff88ad5275c6b5" + "hash": "4ab22fa481720e3bae5befee821fe1c0689d666f8bbcde98890e2d4715e9bc80" } diff --git a/packages/oneclient_db/.sqlx/query-93745def11c9e2ced3c14a4537caa9910b7f5c3167bafebf80aa7e731c1a2dcf.json b/packages/oneclient_db/.sqlx/query-b41126ba17cbc3005b446b23cebc29ffe6fc366294191e546808e9f591b723a9.json similarity index 72% rename from packages/oneclient_db/.sqlx/query-93745def11c9e2ced3c14a4537caa9910b7f5c3167bafebf80aa7e731c1a2dcf.json rename to packages/oneclient_db/.sqlx/query-b41126ba17cbc3005b446b23cebc29ffe6fc366294191e546808e9f591b723a9.json index 61c38c11..9649dd57 100644 --- a/packages/oneclient_db/.sqlx/query-93745def11c9e2ced3c14a4537caa9910b7f5c3167bafebf80aa7e731c1a2dcf.json +++ b/packages/oneclient_db/.sqlx/query-b41126ba17cbc3005b446b23cebc29ffe6fc366294191e546808e9f591b723a9.json @@ -1,6 +1,6 @@ { "db_name": "SQLite", - "query": "\n\t\tINSERT INTO setting_profiles (\n\t\t\tname, java_path, resolution, force_fullscreen, mem_max, launch_args, launch_env,\n\t\t\thook_pre, hook_wrapper, hook_post, os_extra, perf_flags\n\t\t)\n\t\tVALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n\t\tON CONFLICT(name) DO UPDATE SET\n\t\t\tjava_path = excluded.java_path,\n\t\t\tresolution = excluded.resolution,\n\t\t\tforce_fullscreen = excluded.force_fullscreen,\n\t\t\tmem_max = excluded.mem_max,\n\t\t\tlaunch_args = excluded.launch_args,\n\t\t\tlaunch_env = excluded.launch_env,\n\t\t\thook_pre = excluded.hook_pre,\n\t\t\thook_wrapper = excluded.hook_wrapper,\n\t\t\thook_post = excluded.hook_post,\n\t\t\tos_extra = excluded.os_extra,\n\t\t\tperf_flags = excluded.perf_flags\n\t\tRETURNING name, java_path, resolution, force_fullscreen, mem_max, launch_args, launch_env,\n hook_pre, hook_wrapper, hook_post, os_extra, perf_flags\n\t\t", + "query": "\n\t\tINSERT INTO setting_profiles (\n\t\t\tname, java_path, resolution, force_fullscreen, mem_max, launch_args, launch_env,\n\t\t\thook_pre, hook_wrapper, hook_post, os_extra\n\t\t)\n\t\tVALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n\t\tON CONFLICT(name) DO UPDATE SET\n\t\t\tjava_path = excluded.java_path,\n\t\t\tresolution = excluded.resolution,\n\t\t\tforce_fullscreen = excluded.force_fullscreen,\n\t\t\tmem_max = excluded.mem_max,\n\t\t\tlaunch_args = excluded.launch_args,\n\t\t\tlaunch_env = excluded.launch_env,\n\t\t\thook_pre = excluded.hook_pre,\n\t\t\thook_wrapper = excluded.hook_wrapper,\n\t\t\thook_post = excluded.hook_post,\n\t\t\tos_extra = excluded.os_extra\n\t\tRETURNING name, java_path, resolution, force_fullscreen, mem_max, launch_args, launch_env,\n hook_pre, hook_wrapper, hook_post, os_extra\n\t\t", "describe": { "columns": [ { @@ -123,21 +123,10 @@ "name": "os_extra" } } - }, - { - "name": "perf_flags", - "ordinal": 11, - "type_info": "Integer", - "origin": { - "Table": { - "table": "setting_profiles", - "name": "perf_flags" - } - } } ], "parameters": { - "Right": 12 + "Right": 11 }, "nullable": [ false, @@ -150,9 +139,8 @@ true, true, true, - true, true ] }, - "hash": "93745def11c9e2ced3c14a4537caa9910b7f5c3167bafebf80aa7e731c1a2dcf" + "hash": "b41126ba17cbc3005b446b23cebc29ffe6fc366294191e546808e9f591b723a9" } diff --git a/packages/oneclient_db/.sqlx/query-eea8944fa38835f879435dfa511737722f7a32511b386d34d7e1ead8f2cbc9a4.json b/packages/oneclient_db/.sqlx/query-de1b40c927c9819f675b8e3e8e1f583c41450ae9deda20739d82d95e8ca70b27.json similarity index 87% rename from packages/oneclient_db/.sqlx/query-eea8944fa38835f879435dfa511737722f7a32511b386d34d7e1ead8f2cbc9a4.json rename to packages/oneclient_db/.sqlx/query-de1b40c927c9819f675b8e3e8e1f583c41450ae9deda20739d82d95e8ca70b27.json index 727d5411..93a67f21 100644 --- a/packages/oneclient_db/.sqlx/query-eea8944fa38835f879435dfa511737722f7a32511b386d34d7e1ead8f2cbc9a4.json +++ b/packages/oneclient_db/.sqlx/query-de1b40c927c9819f675b8e3e8e1f583c41450ae9deda20739d82d95e8ca70b27.json @@ -1,6 +1,6 @@ { "db_name": "SQLite", - "query": "\n\t\tSELECT name, java_path, resolution, force_fullscreen, mem_max, launch_args, launch_env,\n\t\t hook_pre, hook_wrapper, hook_post, os_extra, perf_flags\n\t\tFROM setting_profiles\n\t\tWHERE name = ?\n\t\t", + "query": "\n\t\tSELECT name, java_path, resolution, force_fullscreen, mem_max, launch_args, launch_env,\n\t\t hook_pre, hook_wrapper, hook_post, os_extra\n\t\tFROM setting_profiles\n\t\tWHERE name = ?\n\t\t", "describe": { "columns": [ { @@ -123,17 +123,6 @@ "name": "os_extra" } } - }, - { - "name": "perf_flags", - "ordinal": 11, - "type_info": "Integer", - "origin": { - "Table": { - "table": "setting_profiles", - "name": "perf_flags" - } - } } ], "parameters": { @@ -150,9 +139,8 @@ true, true, true, - true, true ] }, - "hash": "eea8944fa38835f879435dfa511737722f7a32511b386d34d7e1ead8f2cbc9a4" + "hash": "de1b40c927c9819f675b8e3e8e1f583c41450ae9deda20739d82d95e8ca70b27" } diff --git a/packages/oneclient_db/migrations/20260731120000_perf_jvm_flags.sql b/packages/oneclient_db/migrations/20260731120000_perf_jvm_flags.sql deleted file mode 100644 index 9dec507f..00000000 --- a/packages/oneclient_db/migrations/20260731120000_perf_jvm_flags.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE setting_profiles ADD COLUMN perf_flags INTEGER; diff --git a/packages/oneclient_db/src/dao/setting_profile.rs b/packages/oneclient_db/src/dao/setting_profile.rs index 0453b002..c82441c2 100644 --- a/packages/oneclient_db/src/dao/setting_profile.rs +++ b/packages/oneclient_db/src/dao/setting_profile.rs @@ -15,7 +15,7 @@ pub async fn list_all(pool: &SqlitePool) -> DbResult> { SettingProfileRow, r#" SELECT name, java_path, resolution, force_fullscreen, mem_max, launch_args, launch_env, - hook_pre, hook_wrapper, hook_post, os_extra, perf_flags + hook_pre, hook_wrapper, hook_post, os_extra FROM setting_profiles ORDER BY name ASC "#, @@ -31,7 +31,7 @@ pub async fn get_by_name(pool: &SqlitePool, name: &str) -> DbResult, pub hook_post: Option, pub os_extra: Option, - pub perf_flags: Option, } diff --git a/packages/oneclient_mc/src/arguments.rs b/packages/oneclient_mc/src/arguments.rs index f52090c7..9620d8cc 100644 --- a/packages/oneclient_mc/src/arguments.rs +++ b/packages/oneclient_mc/src/arguments.rs @@ -23,7 +23,6 @@ pub fn java_arguments( custom_args: String, java_arch: &str, java_major: u32, - perf_flags: bool, ) -> McResult> { let mut parsed = Vec::new(); if let Some(args) = arguments { @@ -53,9 +52,7 @@ pub fn java_arguments( parsed.push(classpaths.to_string()); } - if perf_flags { - parsed.extend(performance_flags(java_major, java_arch, mem_max)); - } + parsed.extend(performance_flags(java_major, java_arch, mem_max)); parsed.push(format!("-Xmx{mem_max}M")); parsed.extend(split_custom_args(&custom_args));