From 56ef1a1df57d478f6a00b3518facea4833865c2c Mon Sep 17 00:00:00 2001 From: Eradev Date: Thu, 10 Jul 2025 04:35:49 -0400 Subject: [PATCH] Encode token url (#7983) * Update 40K * Apply UTF-8 encoding to tokens too --- .../src/main/java/forge/util/ImageUtil.java | 23 ++++++++++--------- .../editions/Warhammer 40,000 Commander.txt | 10 ++++++-- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/forge-core/src/main/java/forge/util/ImageUtil.java b/forge-core/src/main/java/forge/util/ImageUtil.java index 0e886d4ad46..8848b529246 100644 --- a/forge-core/src/main/java/forge/util/ImageUtil.java +++ b/forge-core/src/main/java/forge/util/ImageUtil.java @@ -247,16 +247,7 @@ public class ImageUtil { } } - String cardCollectorNumberEncoded; - try { - cardCollectorNumberEncoded = URLEncoder.encode(cardCollectorNumber, "UTF-8"); - } catch (Exception e) { - // Unlikely, for the possibility that "UTF-8" is not supported. - System.err.println("UTF-8 encoding not supported on this device."); - cardCollectorNumberEncoded = cardCollectorNumber; - } - - return String.format("%s/%s/%s?format=image&version=%s%s", editionCode, cardCollectorNumberEncoded, + return String.format("%s/%s/%s?format=image&version=%s%s", editionCode, encodeUtf8(cardCollectorNumber), langCode, versionParam, faceParam); } @@ -265,10 +256,20 @@ public class ImageUtil { if (!faceParam.isEmpty()) { faceParam = (faceParam.equals("back") ? "&face=back" : "&face=front"); } - return String.format("%s/%s/%s?format=image&version=%s%s", setCode, collectorNumber, + return String.format("%s/%s/%s?format=image&version=%s%s", setCode, encodeUtf8(collectorNumber), langCode, versionParam, faceParam); } + private static String encodeUtf8(String s) { + try { + return URLEncoder.encode(s, "UTF-8"); + } catch (Exception e) { + // Unlikely, for the possibility that "UTF-8" is not supported. + System.err.println("UTF-8 encoding not supported on this device."); + return s; + } + } + public static String toMWSFilename(String in) { in = StringUtils.stripAccents(in); final StringBuilder out = new StringBuilder(); diff --git a/forge-gui/res/editions/Warhammer 40,000 Commander.txt b/forge-gui/res/editions/Warhammer 40,000 Commander.txt index 67690c0ee0c..4f6319c6feb 100644 --- a/forge-gui/res/editions/Warhammer 40,000 Commander.txt +++ b/forge-gui/res/editions/Warhammer 40,000 Commander.txt @@ -331,15 +331,21 @@ ScryfallCode=40K [tokens] 1 w_2_2_astartes_warrior_vigilance @Dmitriy Mironov 2 w_1_1_soldier @Lixin Yin -2 w_1_1_soldier @Lixin Yin -2 w_1_1_soldier @Lixin Yin +2★ w_1_1_soldier @Lixin Yin +3 w_1_1_soldier @Lixin Yin +3★ w_1_1_soldier @Lixin Yin +4 w_1_1_soldier @Lixin Yin +4★ w_1_1_soldier @Lixin Yin 9 u_1_1_tyranid_gargoyle_flying @David Astruga 12 b_2_2_astartes_warrior_menace @Helge C. Balzer 13 cherubael @Irina Nordsol 14 b_2_2_a_necron_warrior @Games Workshop 15 plaguebearer_of_nurgle @Games Workshop +15★ plaguebearer_of_nurgle @Games Workshop 16 r_3_3_spawn @Oleg Bulakh +16★ r_3_3_spawn @Oleg Bulakh 17 g_1_1_tyranid @Slawomir Maniak +17★ g_1_1_tyranid @Slawomir Maniak 18 g_5_5_tyranid @Antonio José Manzanedo 19 g_3_3_tyranid_warrior_trample @Sergio Cosmai 20 blue_horror @Andrey Nyarl