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