fix: packs not being validated correctly (#6533)

This commit is contained in:
ThatGravyBoat
2026-06-30 14:02:58 +00:00
committed by GitHub
parent b667b3ae9e
commit b569354793
7 changed files with 27 additions and 34 deletions
+3 -4
View File
@@ -1,5 +1,6 @@
use crate::validate::{
SupportedGameVersions, ValidationError, ValidationResult, filter_out_packs,
SupportedGameVersions, ValidationError, ValidationResult,
validate_pack_formats,
};
use std::io::Cursor;
use zip::ZipArchive;
@@ -29,8 +30,6 @@ impl super::Validator for FabricValidator {
));
}
filter_out_packs(archive)?;
Ok(ValidationResult::Pass)
Ok(validate_pack_formats(archive))
}
}
+4 -7
View File
@@ -1,5 +1,6 @@
use crate::validate::{
SupportedGameVersions, ValidationError, ValidationResult, filter_out_packs,
SupportedGameVersions, ValidationError, ValidationResult,
validate_pack_formats,
};
use chrono::DateTime;
use std::io::Cursor;
@@ -36,9 +37,7 @@ impl super::Validator for ForgeValidator {
));
}
filter_out_packs(archive)?;
Ok(ValidationResult::Pass)
Ok(validate_pack_formats(archive))
}
}
@@ -74,8 +73,6 @@ impl super::Validator for LegacyForgeValidator {
));
};
filter_out_packs(archive)?;
Ok(ValidationResult::Pass)
Ok(validate_pack_formats(archive))
}
}
+3 -4
View File
@@ -1,5 +1,6 @@
use crate::validate::{
SupportedGameVersions, ValidationError, ValidationResult, filter_out_packs,
SupportedGameVersions, ValidationError, ValidationResult,
validate_pack_formats,
};
use std::io::Cursor;
use zip::ZipArchive;
@@ -29,8 +30,6 @@ impl super::Validator for LiteLoaderValidator {
));
}
filter_out_packs(archive)?;
Ok(ValidationResult::Pass)
Ok(validate_pack_formats(archive))
}
}
+8 -7
View File
@@ -326,9 +326,10 @@ fn game_version_supported(
}
}
pub fn filter_out_packs(
archive: &mut ZipArchive<Cursor<bytes::Bytes>>,
) -> Result<ValidationResult, ValidationError> {
#[must_use]
pub fn validate_pack_formats(
archive: &mut ZipArchive<Cursor<Bytes>>,
) -> ValidationResult {
if (archive.by_name("modlist.html").is_ok()
&& archive.by_name("manifest.json").is_ok())
|| archive
@@ -338,10 +339,10 @@ pub fn filter_out_packs(
.file_names()
.any(|x| x.starts_with("override/mods/") && x.ends_with(".jar"))
{
return Ok(ValidationResult::Warning(
"Invalid modpack file. You must upload a valid .MRPACK file.",
));
return ValidationResult::Warning(
"Invalid modpack file. Modpacks must be uploaded in the .mrpack format, not as a ZIP file.",
);
}
Ok(ValidationResult::Pass)
ValidationResult::Pass
}
+3 -4
View File
@@ -1,5 +1,6 @@
use crate::validate::{
SupportedGameVersions, ValidationError, ValidationResult, filter_out_packs,
SupportedGameVersions, ValidationError, ValidationResult,
validate_pack_formats,
};
use std::io::Cursor;
use zip::ZipArchive;
@@ -33,8 +34,6 @@ impl super::Validator for NeoForgeValidator {
));
}
filter_out_packs(archive)?;
Ok(ValidationResult::Pass)
Ok(validate_pack_formats(archive))
}
}
+3 -4
View File
@@ -1,5 +1,6 @@
use crate::validate::{
SupportedGameVersions, ValidationError, ValidationResult, filter_out_packs,
SupportedGameVersions, ValidationError, ValidationResult,
validate_pack_formats,
};
use chrono::DateTime;
use std::io::Cursor;
@@ -34,8 +35,6 @@ impl super::Validator for QuiltValidator {
));
}
filter_out_packs(archive)?;
Ok(ValidationResult::Pass)
Ok(validate_pack_formats(archive))
}
}
+3 -4
View File
@@ -1,5 +1,6 @@
use crate::validate::{
SupportedGameVersions, ValidationError, ValidationResult, filter_out_packs,
SupportedGameVersions, ValidationError, ValidationResult,
validate_pack_formats,
};
use std::io::Cursor;
use zip::ZipArchive;
@@ -29,8 +30,6 @@ impl super::Validator for RiftValidator {
));
}
filter_out_packs(archive)?;
Ok(ValidationResult::Pass)
Ok(validate_pack_formats(archive))
}
}