Add new optional file types (#4854)

* Add new optional file types

* Fix build

* Add signature file type

---------

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
This commit is contained in:
aecsocket
2025-12-06 23:45:10 +00:00
committed by GitHub
parent 56356e8260
commit cea5cfa4ab
2 changed files with 24 additions and 0 deletions

View File

@@ -950,6 +950,10 @@ impl DependencyType {
pub enum FileType {
RequiredResourcePack,
OptionalResourcePack,
SourcesJar,
DevJar,
JavadocJar,
Signature,
Unknown,
}
@@ -965,7 +969,11 @@ impl FileType {
match self {
FileType::RequiredResourcePack => "required-resource-pack",
FileType::OptionalResourcePack => "optional-resource-pack",
FileType::SourcesJar => "sources-jar",
FileType::DevJar => "dev-jar",
FileType::JavadocJar => "javadoc-jar",
FileType::Unknown => "unknown",
FileType::Signature => "signature",
}
}
@@ -973,7 +981,11 @@ impl FileType {
match string {
"required-resource-pack" => FileType::RequiredResourcePack,
"optional-resource-pack" => FileType::OptionalResourcePack,
"sources-jar" => FileType::SourcesJar,
"dev-jar" => FileType::DevJar,
"javadoc-jar" => FileType::JavadocJar,
"unknown" => FileType::Unknown,
"signature" => FileType::Signature,
_ => FileType::Unknown,
}
}

View File

@@ -221,6 +221,18 @@ async fn validate_minecraft_file(
FileType::RequiredResourcePack | FileType::OptionalResourcePack => {
return PackValidator.validate_maybe_protected_zip(&mut zip);
}
FileType::Signature => {
// Not sure if we have a better way to detect if a file is a signature
// should look into this?
return if ["asc", "gpg", "sig"].contains(&file_extension.as_str()) {
Ok(ValidationResult::Pass)
} else {
Err(ValidationError::InvalidInput(
format!("File extension {file_extension} is invalid for input file").into(),
))
};
}
FileType::DevJar | FileType::SourcesJar | FileType::JavadocJar => {},
FileType::Unknown => {}
}
}