From f3b2192dd2a04a959f74d2a0f2c40620debbef69 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Fri, 25 Jul 2025 00:36:42 +0800 Subject: [PATCH] fix planechase bg download --- .../src/forge/util/LibGDXImageFetcher.java | 7 +++--- .../main/java/forge/util/ImageFetcher.java | 24 +++++++++++++------ 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/forge-gui-mobile/src/forge/util/LibGDXImageFetcher.java b/forge-gui-mobile/src/forge/util/LibGDXImageFetcher.java index 549f3ceb0c6..38338a7327d 100644 --- a/forge-gui-mobile/src/forge/util/LibGDXImageFetcher.java +++ b/forge-gui-mobile/src/forge/util/LibGDXImageFetcher.java @@ -37,7 +37,8 @@ public class LibGDXImageFetcher extends ImageFetcher { String newdespath = urlToDownload.contains(".fullborder.") || urlToDownload.startsWith(ForgeConstants.URL_PIC_SCRYFALL_DOWNLOAD) ? TextUtil.fastReplace(destPath, ".full.", ".fullborder.") : destPath; - if (!newdespath.contains(".full") && urlToDownload.startsWith(ForgeConstants.URL_PIC_SCRYFALL_DOWNLOAD) && !destPath.startsWith(ForgeConstants.CACHE_TOKEN_PICS_DIR)) + if (!newdespath.contains(".full") && urlToDownload.startsWith(ForgeConstants.URL_PIC_SCRYFALL_DOWNLOAD) && + !destPath.startsWith(ForgeConstants.CACHE_TOKEN_PICS_DIR) && !destPath.startsWith(ForgeConstants.CACHE_PLANECHASE_PICS_DIR)) newdespath = newdespath.replace(".jpg", ".fullborder.jpg"); //fix planes/phenomenon for round border options URL url = new URL(urlToDownload); System.out.println("Attempting to fetch: " + url); @@ -83,10 +84,10 @@ public class LibGDXImageFetcher extends ImageFetcher { public void run() { boolean success = false; for (String urlToDownload : downloadUrls) { - boolean isPlanechaseBG = urlToDownload.startsWith("https://downloads.cardforge.org/images/planes/"); + boolean isPlanechaseBG = urlToDownload.startsWith("PLANECHASEBG:"); try { - success = doFetch(urlToDownload); + success = doFetch(urlToDownload.replace("PLANECHASEBG:", "")); if (success) { break; diff --git a/forge-gui/src/main/java/forge/util/ImageFetcher.java b/forge-gui/src/main/java/forge/util/ImageFetcher.java index 4ffb505747c..7ce0da05ff1 100644 --- a/forge-gui/src/main/java/forge/util/ImageFetcher.java +++ b/forge-gui/src/main/java/forge/util/ImageFetcher.java @@ -116,13 +116,22 @@ public abstract class ImageFetcher { final ArrayList downloadUrls = new ArrayList<>(); if (imageKey.startsWith("PLANECHASEBG:")) { final String filename = imageKey.substring("PLANECHASEBG:".length()); - downloadUrls.add("https://downloads.cardforge.org/images/planes/" + filename); - FileUtil.ensureDirectoryExists(ForgeConstants.CACHE_PLANECHASE_PICS_DIR); - File destFile = new File(ForgeConstants.CACHE_PLANECHASE_PICS_DIR, filename); - if (destFile.exists()) - return; + PaperCard pc = StaticData.instance().getVariantCards().getCard(filename.replace("_", " ").replace(".jpg", "")); + if (pc != null) { + CardEdition ed = StaticData.instance().getEditions().get(pc.getEdition()); + if (ed != null) { + String setCode = ed.getScryfallCode(); + String langCode = ed.getCardsLangCode(); + downloadUrls.add("PLANECHASEBG:" + ForgeConstants.URL_PIC_SCRYFALL_DOWNLOAD + ImageUtil.getScryfallDownloadUrl(pc, "", setCode, langCode, true)); + FileUtil.ensureDirectoryExists(ForgeConstants.CACHE_PLANECHASE_PICS_DIR); + File destFile = new File(ForgeConstants.CACHE_PLANECHASE_PICS_DIR, filename); + if (destFile.exists()) + return; - setupObserver(destFile.getAbsolutePath(), callback, downloadUrls); + setupObserver(destFile.getAbsolutePath(), callback, downloadUrls); + return; + } + } return; } @@ -266,7 +275,8 @@ public abstract class ImageFetcher { return; if (tempdata.length < 2) { - System.err.println("Token image key is malformed: " + imageKey); + if (!"planechase".equals(tempdata[0])) + System.err.println("Token image key is malformed: " + imageKey); return; }