From 84763e5dbc1c7cb0096a7d703943c61aaa4daa6a Mon Sep 17 00:00:00 2001 From: leriomaggio Date: Tue, 7 Sep 2021 00:35:08 +0100 Subject: [PATCH] Adding support for deck name in Forge Deck Format Signed-off-by: leriomaggio --- forge-core/src/main/java/forge/deck/DeckRecognizer.java | 2 +- .../src/test/java/forge/deck/DeckRecognizerTest.java | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/forge-core/src/main/java/forge/deck/DeckRecognizer.java b/forge-core/src/main/java/forge/deck/DeckRecognizer.java index 68e27bef163..239584dbad4 100644 --- a/forge-core/src/main/java/forge/deck/DeckRecognizer.java +++ b/forge-core/src/main/java/forge/deck/DeckRecognizer.java @@ -153,7 +153,7 @@ public class DeckRecognizer { // Core Matching Patterns (initialised in Constructor) public static final String REGRP_DECKNAME = "deckName"; public static final String REX_DECK_NAME = - String.format("^(//\\s*)?(?
(deck|name))(\\:|\\s)\\s*(?<%s>[a-zA-Z0-9',\\/\\-\\s]+)\\s*(.*)$",
+            String.format("^(//\\s*)?(?
(deck|name))(\\:|=|\\s)\\s*(?<%s>[a-zA-Z0-9',\\/\\-\\s\\(\\)]+)\\s*(.*)$",
                     REGRP_DECKNAME);
     public static final Pattern DECK_NAME_PATTERN = Pattern.compile(REX_DECK_NAME, Pattern.CASE_INSENSITIVE);
 
diff --git a/forge-gui-desktop/src/test/java/forge/deck/DeckRecognizerTest.java b/forge-gui-desktop/src/test/java/forge/deck/DeckRecognizerTest.java
index 94f7d5433bc..820f6954b5a 100644
--- a/forge-gui-desktop/src/test/java/forge/deck/DeckRecognizerTest.java
+++ b/forge-gui-desktop/src/test/java/forge/deck/DeckRecognizerTest.java
@@ -168,6 +168,14 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
         assertEquals(deckNameMatcher.group(DeckRecognizer.REGRP_DECKNAME), "Red Green Aggro");
         assertEquals(DeckRecognizer.getDeckName(matchingDeckName), "Red Green Aggro");
 
+        // Forge deck format
+        matchingDeckName = "Name=Sliver Overlord (Commander)";
+        deckNameMatcher = deckNamePattern.matcher(matchingDeckName);
+        assertTrue(deckNameMatcher.matches());
+        assertTrue(DeckRecognizer.isDeckName(matchingDeckName));
+        assertEquals(deckNameMatcher.group(DeckRecognizer.REGRP_DECKNAME), "Sliver Overlord (Commander)");
+        assertEquals(DeckRecognizer.getDeckName(matchingDeckName), "Sliver Overlord (Commander)");
+
         // Failing Cases
         matchingDeckName = ":Red Green Aggro";
         deckNameMatcher = deckNamePattern.matcher(matchingDeckName);