From 347f6dcb84e6f57530f4200f7c5e11c35da70280 Mon Sep 17 00:00:00 2001 From: "Calum H. (IMB11)" Date: Fri, 31 Jul 2026 07:29:38 +0100 Subject: [PATCH] fix: ignore extensions for mrpack warning modal --- .../app-lib/src/api/pack/install_mrpack.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/packages/app-lib/src/api/pack/install_mrpack.rs b/packages/app-lib/src/api/pack/install_mrpack.rs index 52946bd120..7c0cd1a3a7 100644 --- a/packages/app-lib/src/api/pack/install_mrpack.rs +++ b/packages/app-lib/src/api/pack/install_mrpack.rs @@ -1,4 +1,5 @@ use crate::State; +use crate::api::instance::CONFIG_FILE_EXTENSIONS; use crate::event::emit::loading_try_for_each_concurrent; use crate::install::{ InstallErrorContext, InstallJobEventKind, InstallPhaseDetails, @@ -42,6 +43,19 @@ type ExtractProgressFn<'a> = dyn FnMut(u64) -> Pin bool { + Path::new(path) + .extension() + .and_then(|extension| extension.to_str()) + .is_some_and(|extension| { + CONFIG_FILE_EXTENSIONS + .iter() + .chain(MRPACK_WARNING_IGNORED_EXTENSIONS) + .any(|candidate| extension.eq_ignore_ascii_case(candidate)) + }) +} #[derive(Clone)] struct ModpackContentInstallContext { @@ -258,6 +272,9 @@ pub(crate) async fn get_external_files_from_mrpack( .into_iter() .filter_map(|file| { let path = file.path.as_str(); + if is_ignored_mrpack_warning_file(path) { + return None; + } let hash = file.hashes.get(&PackFileHash::Sha1)?.clone(); let file_name = path.rsplit('/').next()?.to_string(); Some((file_name, hash)) @@ -275,6 +292,7 @@ pub(crate) async fn get_external_files_from_mrpack( .strip_prefix("overrides/") .or_else(|| path.strip_prefix("client-overrides/"))?; if path.ends_with('/') + || is_ignored_mrpack_warning_file(relative_path) || ProjectType::get_from_parent_folder(relative_path).is_none() { return None;