From 7c97e63275ec1bb1c65da09394a7d72823aa8ec1 Mon Sep 17 00:00:00 2001 From: Juuz <6596629+Juuxel@users.noreply.github.com> Date: Sat, 11 May 2024 15:18:07 +0300 Subject: [PATCH] Version resolver: Add Yarn patch for NeoForge to index --- version_resolver/src/index.rs | 16 ++++++++++++++++ version_resolver/src/maven.rs | 4 ++++ version_resolver/src/minecraft.rs | 7 +++++++ 3 files changed, 27 insertions(+) diff --git a/version_resolver/src/index.rs b/version_resolver/src/index.rs index 0f9dabb..10dd14a 100644 --- a/version_resolver/src/index.rs +++ b/version_resolver/src/index.rs @@ -37,6 +37,8 @@ pub struct Versions { pub architectury_api: String, pub forge: Option, pub neoforge: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub neoforge_yarn_patch: Option, } impl Versions { @@ -81,10 +83,24 @@ impl Versions { None }; + let neoforge_yarn_patch = if let Some(prefix) = game_version.neoforge_yarn_patch_version() { + Some( + crate::maven::resolve_matching_version( + &client, + crate::maven::MavenLibrary::neoforge_yarn_patch(), + |version| version.starts_with(&format!("{}+", prefix)), + ) + .await?, + ) + } else { + None + }; + Ok(Self { architectury_api, forge, neoforge, + neoforge_yarn_patch, }) } } diff --git a/version_resolver/src/maven.rs b/version_resolver/src/maven.rs index da3a820..dc21b3b 100644 --- a/version_resolver/src/maven.rs +++ b/version_resolver/src/maven.rs @@ -71,6 +71,10 @@ impl MavenLibrary { ) } + pub fn neoforge_yarn_patch() -> Self { + Self::new(MavenRepository::Architectury, "dev.architectury", "yarn-mappings-patch-neoforge") + } + // Forge libraries pub fn forge() -> Self { Self::new(MavenRepository::Forge, "net.minecraftforge", "forge") diff --git a/version_resolver/src/minecraft.rs b/version_resolver/src/minecraft.rs index a388fbc..8add6a8 100644 --- a/version_resolver/src/minecraft.rs +++ b/version_resolver/src/minecraft.rs @@ -146,6 +146,13 @@ impl MinecraftVersion { } } + pub fn neoforge_yarn_patch_version(&self) -> Option<&'static str> { + match self { + Self::Minecraft1_20_5 => Some("1.20.5"), + _ => None, + } + } + pub fn forge_pack_version(&self) -> Option<&'static str> { match self { Self::Minecraft1_16_5 => Some("6"),