From a54df8e77c448f4c7ca3845ba845a60e5d5fcde7 Mon Sep 17 00:00:00 2001 From: TimNeverHere Date: Sat, 20 Dec 2025 18:08:00 +1100 Subject: [PATCH] fix: download from git MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 在github下载时如果资源包时需要转换那么我们需要对每一个被转换的资源包单独获取release tag 来避免404 Signed-off-by: TimNeverHere --- .../java/i18nupdatemod/core/I18nConfig.java | 61 ++++++++----------- 1 file changed, 27 insertions(+), 34 deletions(-) diff --git a/src/main/java/i18nupdatemod/core/I18nConfig.java b/src/main/java/i18nupdatemod/core/I18nConfig.java index b0169c7..0a4d200 100644 --- a/src/main/java/i18nupdatemod/core/I18nConfig.java +++ b/src/main/java/i18nupdatemod/core/I18nConfig.java @@ -78,44 +78,37 @@ public static GameAssetDetail getAssetDetail(String minecraftVersion, String loa } private static List createDownloadDetails(GameMetaData convert, String loader, String assetRoot) { - return convert.convertFrom.stream().map(it -> getAssetMetaData(it, loader)).map(it -> { - GameAssetDetail.AssetDownloadDetail adi = new GameAssetDetail.AssetDownloadDetail(); - adi.fileName = it.filename; - adi.fileUrl = assetRoot + it.filename; - adi.md5Url = assetRoot + it.md5Filename; - adi.targetVersion = it.targetVersion; - return adi; - }).collect(Collectors.toList()); + return convert.convertFrom.stream().map(it->getDownloadDetailsOnce(it,loader,assetRoot)).collect(Collectors.toList()); + } + private static GameAssetDetail.AssetDownloadDetail getDownloadDetailsOnce(String convertFrom, String loader,String assetRoot){ + AssetMetaData metaData = getAssetMetaData(convertFrom,loader); + GameAssetDetail.AssetDownloadDetail adi = new GameAssetDetail.AssetDownloadDetail(); + adi.fileName = metaData.filename; + adi.fileUrl = assetRoot + metaData.filename; + adi.md5Url = assetRoot + metaData.md5Filename; + adi.targetVersion = metaData.targetVersion; + return adi; } - private static List createDownloadDetailsFromGit(GameMetaData convert, String loader) { - try { Map index = getGitIndex(); - String releaseTag; - String version = convert.convertFrom.get(0); - - if (loader.toLowerCase().contains("fabric")) { - releaseTag = index.get(version + "-fabric"); - } else { - releaseTag = index.get(version); - } - if (releaseTag == null) { - Log.debug("Error getting index: " + version + "-" + loader); - Log.debug(index.toString()); - throw new Exception(); + return convert.convertFrom.stream().map( version -> { + String releaseTag = null; + String assetRoot = null; + if (loader.toLowerCase().contains("fabric")) { + releaseTag = index.get(version + "-fabric"); + } else { + releaseTag = index.get(version); + } + if (releaseTag == null) { + Log.debug("Error getting index: " + version + "-" + loader); + Log.debug(index.toString()); + assetRoot = CFPA_ASSET_ROOT; + } else { + assetRoot = "https://github.com/CFPAOrg/Minecraft-Mod-Language-Package/releases/download/" + releaseTag + "/"; + } + return getDownloadDetailsOnce(version,loader,assetRoot); } - String assetRoot = "https://github.com/CFPAOrg/Minecraft-Mod-Language-Package/releases/download/" + releaseTag + "/"; + ).collect(Collectors.toList()); - return convert.convertFrom.stream().map(it -> getAssetMetaData(it, loader)).map(it -> { - GameAssetDetail.AssetDownloadDetail adi = new GameAssetDetail.AssetDownloadDetail(); - adi.fileName = it.filename; - adi.fileUrl = assetRoot + it.filename; - adi.md5Url = assetRoot + it.md5Filename; - adi.targetVersion = it.targetVersion; - return adi; - }).collect(Collectors.toList()); - } catch (Exception ignore) { - return createDownloadDetails(convert, loader, CFPA_ASSET_ROOT); - } } }