Commit edcda087 authored by SherryChaos's avatar SherryChaos

online deck bug fix

parent 04e91b0f
This diff is collapsed.
...@@ -57,8 +57,8 @@ namespace MDPro3.Duel.YGOSharp ...@@ -57,8 +57,8 @@ namespace MDPro3.Duel.YGOSharp
Grave = 1100001; Grave = 1100001;
Stand = 1110001; Stand = 1110001;
Mate = 1000001; Mate = 1000001;
string st = ydk.Replace("\r", ""); string st = ydk.Replace("\r", string.Empty).Replace("\\r", string.Empty).Replace("\\n", "\n");
string[] lines = st.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries); string[] lines = st.Split("\n", StringSplitOptions.RemoveEmptyEntries);
int flag = -1; int flag = -1;
foreach (string line in lines) foreach (string line in lines)
...@@ -278,7 +278,7 @@ namespace MDPro3.Duel.YGOSharp ...@@ -278,7 +278,7 @@ namespace MDPro3.Duel.YGOSharp
{ {
var path = Program.PATH_DECK + deckName + Program.EXPANSION_YDK; var path = Program.PATH_DECK + deckName + Program.EXPANSION_YDK;
File.WriteAllText(path, ydk, Encoding.UTF8); File.WriteAllText(path, ydk, Encoding.UTF8);
File.SetLastWriteTime(path, saveTime); File.SetLastWriteTimeUtc(path, saveTime);
if (MyCard.account != null && upload) if (MyCard.account != null && upload)
_ = OnlineDeck.SyncDeck(deckId, deckName, this, true); _ = OnlineDeck.SyncDeck(deckId, deckName, this, true);
......
...@@ -54,7 +54,6 @@ namespace MDPro3.Net ...@@ -54,7 +54,6 @@ namespace MDPro3.Net
if (request.result == UnityWebRequest.Result.Success) if (request.result == UnityWebRequest.Result.Success)
{ {
string jsonResult = request.downloadHandler.text;
var responseData = JsonUtility.FromJson<ResponseMultiSimpleData>(request.downloadHandler.text); var responseData = JsonUtility.FromJson<ResponseMultiSimpleData>(request.downloadHandler.text);
return responseData.data; return responseData.data;
} }
...@@ -162,7 +161,10 @@ namespace MDPro3.Net ...@@ -162,7 +161,10 @@ namespace MDPro3.Net
if (responseData.code == 0) if (responseData.code == 0)
MessageManager.Cast(InterString.Get("点赞卡组成功。")); MessageManager.Cast(InterString.Get("点赞卡组成功。"));
else else
MessageManager.Cast(InterString.Get("点赞卡组失败:") + InterString.Get(responseData.message, responseData.messageValue)); MessageManager.Cast(InterString.Get("点赞卡组失败:") +
//InterString.Get(responseData.message, responseData.messageValue)
responseData.message
);
} }
else else
MessageManager.Cast(InterString.Get("点赞卡组失败:") + request.error); MessageManager.Cast(InterString.Get("点赞卡组失败:") + request.error);
...@@ -229,7 +231,7 @@ namespace MDPro3.Net ...@@ -229,7 +231,7 @@ namespace MDPro3.Net
decks[i].deckId = ids[i]; decks[i].deckId = ids[i];
decks[i].userId = MyCard.account.user.id.ToString(); decks[i].userId = MyCard.account.user.id.ToString();
decks[i].Save(newName, DateTime.Now, false); decks[i].Save(newName, DateTime.UtcNow, false);
} }
var json = JsonUtility.ToJson(body); var json = JsonUtility.ToJson(body);
...@@ -296,10 +298,9 @@ namespace MDPro3.Net ...@@ -296,10 +298,9 @@ namespace MDPro3.Net
if (request.result == UnityWebRequest.Result.Success) if (request.result == UnityWebRequest.Result.Success)
{ {
var responseData = JsonUtility.FromJson<SyncResponseSingleData>(request.downloadHandler.text); var responseData = JsonUtility.FromJson<SyncResponseSingleData>(request.downloadHandler.text);
Debug.LogFormat("Sync Deck: {0}, Result: {1} {2} {3}.", deckName, responseData.code, responseData.message, responseData.data);
if (showHint) if (showHint)
MessageManager.Cast(InterString.Get("云端卡组「[?]」已同步。", deckName)); MessageManager.Cast(InterString.Get("云端卡组「[?]」已同步。", deckName));
deck.Save(deckName, DateTime.Now, false); deck.Save(deckName, DateTime.UtcNow, false);
return true; return true;
} }
else else
...@@ -451,37 +452,33 @@ namespace MDPro3.Net ...@@ -451,37 +452,33 @@ namespace MDPro3.Net
public string deckId; public string deckId;
public string deckContributor; public string deckContributor;
public string deckName; public string deckName;
public string deckType;
public int deckRank = 0; public int deckRank = 0;
public int deckLike = 0; public int deckLike = 0;
public string deckUploadDate; public long deckUploadDate;
public string deckUpdateDate; public long deckUpdateDate;
public int deckCoverCard1 = 0; public int deckCoverCard1 = 0;
public int deckCoverCard2 = 0; public int deckCoverCard2 = 0;
public int deckCoverCard3 = 0; public int deckCoverCard3 = 0;
public int deckCase = 0; public int deckCase = 0;
public int deckProtector = 0; public int deckProtector = 0;
public string lastDate;
public string deckYdk;
public string deckMainSerial; public string deckMainSerial;
public string deckYdk;
public int userid; public int userid;
public bool isPublic; public bool isPublic;
public string description; public string description;
public bool isDelete; public bool isDelete;
//List Only
public string lastDate;
public OnlineDeckData() { } public OnlineDeckData() { }
public DateTime GetUpdateTime() public DateTime GetUpdateUtcTime()
{ {
try var dataTimeOffset = DateTimeOffset.FromUnixTimeSeconds(deckUpdateDate);
{ return dataTimeOffset.UtcDateTime;
return DateTime.Parse(deckUpdateDate);
}
catch
{
return DateTime.Parse(deckUploadDate);
}
} }
} }
[Serializable] [Serializable]
...@@ -489,7 +486,7 @@ namespace MDPro3.Net ...@@ -489,7 +486,7 @@ namespace MDPro3.Net
{ {
public int code = 0; public int code = 0;
public string message; public string message;
public string messageValue; //public string messageValue;
public OnlineDeckData data; public OnlineDeckData data;
} }
......
...@@ -296,9 +296,10 @@ namespace MDPro3.Servant ...@@ -296,9 +296,10 @@ namespace MDPro3.Servant
{ {
localFoundedIds.Add(od.deckId); localFoundedIds.Add(od.deckId);
var fileInfo = new FileInfo(deckFiles[i]); var fileInfo = new FileInfo(deckFiles[i]);
var serverTime = od.GetUpdateTime(); var serverTime = od.GetUpdateUtcTime();
var diff = serverTime - fileInfo.LastWriteTime; var diff = serverTime - fileInfo.LastWriteTimeUtc;
//Debug.LogFormat("{0}({1}): {2}-{3}={4}", od.deckName, od.deckId, serverTime, fileInfo.LastWriteTime, diff.TotalSeconds);
//Debug.Log($"{od.deckName}: serverTime: {serverTime} localTime: {fileInfo.LastWriteTimeUtc}");
if (diff.TotalSeconds > 5f || diff.TotalSeconds < -5f) if (diff.TotalSeconds > 5f || diff.TotalSeconds < -5f)
{ {
...@@ -323,6 +324,7 @@ namespace MDPro3.Servant ...@@ -323,6 +324,7 @@ namespace MDPro3.Servant
var task = OnlineDeck.SyncDeck(deck.Value.deckId, deck.Key, deck.Value, false); var task = OnlineDeck.SyncDeck(deck.Value.deckId, deck.Key, deck.Value, false);
while (!task.IsCompleted) while (!task.IsCompleted)
yield return null; yield return null;
deck.Value.Save(deck.Key, DateTime.UtcNow, false);
} }
//更新已经有Id的本地较旧卡组 //更新已经有Id的本地较旧卡组
foreach (var deck in decksNeedUpdateFromServer) foreach (var deck in decksNeedUpdateFromServer)
...@@ -335,7 +337,7 @@ namespace MDPro3.Servant ...@@ -335,7 +337,7 @@ namespace MDPro3.Servant
File.Delete(oldPath); File.Delete(oldPath);
var newPath = Program.PATH_DECK + od.deckName + Program.EXPANSION_YDK; var newPath = Program.PATH_DECK + od.deckName + Program.EXPANSION_YDK;
File.WriteAllText(newPath, od.deckYdk); File.WriteAllText(newPath, od.deckYdk);
File.SetLastWriteTime(newPath, od.GetUpdateTime()); File.SetLastWriteTimeUtc(newPath, od.GetUpdateUtcTime());
} }
//上传没有Id的本地卡组 //上传没有Id的本地卡组
...@@ -369,7 +371,7 @@ namespace MDPro3.Servant ...@@ -369,7 +371,7 @@ namespace MDPro3.Servant
var d = new Deck(deck.deckYdk, string.Empty, string.Empty); var d = new Deck(deck.deckYdk, string.Empty, string.Empty);
d.userId = MyCard.account.user.id.ToString(); d.userId = MyCard.account.user.id.ToString();
d.deckId = deck.deckId; d.deckId = deck.deckId;
d.Save(deck.deckName, deck.GetUpdateTime()); d.Save(deck.deckName, deck.GetUpdateUtcTime());
} }
#if UNITY_EDITOR #if UNITY_EDITOR
......
...@@ -317,12 +317,12 @@ namespace MDPro3.UI.ServantUI ...@@ -317,12 +317,12 @@ namespace MDPro3.UI.ServantUI
{ {
var uri = new Uri(clipBoard); var uri = new Uri(clipBoard);
var deck = DeckShareURL.UriToDeck(uri); var deck = DeckShareURL.UriToDeck(uri);
deck.Save(deckName, DateTime.Now); deck.Save(deckName, DateTime.UtcNow);
} }
else if (clipBoard.Contains(YdkeConverter.ydkeHeader)) else if (clipBoard.Contains(YdkeConverter.ydkeHeader))
{ {
var deck = YdkeConverter.Ydke2Deck(clipBoard); var deck = YdkeConverter.Ydke2Deck(clipBoard);
deck.Save(deckName, DateTime.Now); deck.Save(deckName, DateTime.UtcNow);
} }
Config.SetConfigDeck(deckName); Config.SetConfigDeck(deckName);
RefreshList(); RefreshList();
......
...@@ -81,16 +81,16 @@ namespace MDPro3.UI.ServantUI ...@@ -81,16 +81,16 @@ namespace MDPro3.UI.ServantUI
{ {
var task = new string[10] var task = new string[10]
{ {
deck.deckName, deck.deckName,
deck.deckContributor, deck.deckContributor,
deck.deckId, deck.deckId,
deck.deckCase == 0 ? "1080001" : deck.deckCase.ToString(), deck.deckCase == 0 ? "1080001" : deck.deckCase.ToString(),
deck.deckCoverCard1.ToString(), deck.deckCoverCard1.ToString(),
deck.deckCoverCard2.ToString(), deck.deckCoverCard2.ToString(),
deck.deckCoverCard3.ToString(), deck.deckCoverCard3.ToString(),
deck.deckProtector == 0 ? "1070001" : deck.deckProtector.ToString(), deck.deckProtector == 0 ? "1070001" : deck.deckProtector.ToString(),
deck.deckLike.ToString(), deck.deckLike.ToString(),
deck.lastDate deck.lastDate
}; };
tasks.Add(task); tasks.Add(task);
} }
......
...@@ -1197,7 +1197,7 @@ namespace MDPro3.UI ...@@ -1197,7 +1197,7 @@ namespace MDPro3.UI
try try
{ {
var deckName = GetDeckName(); var deckName = GetDeckName();
Deck.Save(deckName, DateTime.Now); Deck.Save(deckName, DateTime.UtcNow);
if (deckName != this.deckName) if (deckName != this.deckName)
File.Delete(Program.PATH_DECK + this.deckName + Program.EXPANSION_YDK); File.Delete(Program.PATH_DECK + this.deckName + Program.EXPANSION_YDK);
this.deckName = deckName; this.deckName = deckName;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment