From 723f366cc0342b9414f7b607be36e6456b0b322c Mon Sep 17 00:00:00 2001 From: CCTV-1 Date: Tue, 28 Jan 2020 22:13:25 +0800 Subject: [PATCH 1/4] support save unicode name deck --- forge-core/src/main/java/forge/deck/DeckBase.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/forge-core/src/main/java/forge/deck/DeckBase.java b/forge-core/src/main/java/forge/deck/DeckBase.java index 249721edd52..d4ac23fedc2 100644 --- a/forge-core/src/main/java/forge/deck/DeckBase.java +++ b/forge-core/src/main/java/forge/deck/DeckBase.java @@ -143,7 +143,14 @@ public abstract class DeckBase implements Serializable, Comparable, In * @return the best file name */ public final String getBestFileName() { - return name.replaceAll("[^-_$#@.,{[()]} a-zA-Z0-9]", ""); + //string operator hard to guarantee filename legal,only replace some not allowed as file names characters + name.replaceAll("[\\/:*?\"<>|]",""); + if ( name == "" ) + { + //"getBestFileName" sha1 value + return "bc2b4ac6bf8dd84112c79e4c733b0b5bd8f057b3"; + } + return name; } public abstract boolean isEmpty(); From 95a5ba10a7a9b456050aa844d2d7fb507099ff10 Mon Sep 17 00:00:00 2001 From: CCTV-1 Date: Wed, 29 Jan 2020 09:00:19 +0800 Subject: [PATCH 2/4] adjust indent --- forge-core/src/main/java/forge/deck/DeckBase.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/forge-core/src/main/java/forge/deck/DeckBase.java b/forge-core/src/main/java/forge/deck/DeckBase.java index d4ac23fedc2..18402619549 100644 --- a/forge-core/src/main/java/forge/deck/DeckBase.java +++ b/forge-core/src/main/java/forge/deck/DeckBase.java @@ -145,8 +145,7 @@ public abstract class DeckBase implements Serializable, Comparable, In public final String getBestFileName() { //string operator hard to guarantee filename legal,only replace some not allowed as file names characters name.replaceAll("[\\/:*?\"<>|]",""); - if ( name == "" ) - { + if (name == "") { //"getBestFileName" sha1 value return "bc2b4ac6bf8dd84112c79e4c733b0b5bd8f057b3"; } From f2c0b0423fbf5ea7a8e18a9d30312b9cbef152a5 Mon Sep 17 00:00:00 2001 From: CCTV-1 Date: Sun, 16 Feb 2020 13:44:22 +0800 Subject: [PATCH 3/4] fix miss assigning replaceAll return value. --- forge-core/src/main/java/forge/deck/DeckBase.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/forge-core/src/main/java/forge/deck/DeckBase.java b/forge-core/src/main/java/forge/deck/DeckBase.java index 18402619549..a37d6769369 100644 --- a/forge-core/src/main/java/forge/deck/DeckBase.java +++ b/forge-core/src/main/java/forge/deck/DeckBase.java @@ -144,12 +144,12 @@ public abstract class DeckBase implements Serializable, Comparable, In */ public final String getBestFileName() { //string operator hard to guarantee filename legal,only replace some not allowed as file names characters - name.replaceAll("[\\/:*?\"<>|]",""); - if (name == "") { + final String result = name.replaceAll("[\\/:*?\"<>|]",""); + if (result == "") { //"getBestFileName" sha1 value return "bc2b4ac6bf8dd84112c79e4c733b0b5bd8f057b3"; } - return name; + return result; } public abstract boolean isEmpty(); From a11ab7d0074882539cc8b03a7c5eed93c3f2e085 Mon Sep 17 00:00:00 2001 From: CCTV-1 Date: Sat, 6 Mar 2021 11:16:23 +0800 Subject: [PATCH 4/4] if the string is empty after replacement,return creation time. --- forge-core/src/main/java/forge/deck/DeckBase.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/forge-core/src/main/java/forge/deck/DeckBase.java b/forge-core/src/main/java/forge/deck/DeckBase.java index a37d6769369..03c1fe96d55 100644 --- a/forge-core/src/main/java/forge/deck/DeckBase.java +++ b/forge-core/src/main/java/forge/deck/DeckBase.java @@ -19,6 +19,8 @@ package forge.deck; import forge.item.InventoryItem; import java.io.Serializable; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; public abstract class DeckBase implements Serializable, Comparable, InventoryItem { private static final long serialVersionUID = -7538150536939660052L; @@ -145,9 +147,9 @@ public abstract class DeckBase implements Serializable, Comparable, In public final String getBestFileName() { //string operator hard to guarantee filename legal,only replace some not allowed as file names characters final String result = name.replaceAll("[\\/:*?\"<>|]",""); - if (result == "") { - //"getBestFileName" sha1 value - return "bc2b4ac6bf8dd84112c79e4c733b0b5bd8f057b3"; + if (result.isEmpty()) { + final String createTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd-HH-mm")); + return createTime; } return result; }