//Resolving Archive Conflicts private void HandleDifference(OperationResult operationResult) { if (operationResult != null) { Difference archiveDifference = operationResult.Difference; Archive openedArchive = archiveDifference.RecentArchive(); Archive serverArchive = archiveDifference.ServerArchive; // Sample use the server archive to solve diffrence if (serverArchive == null) { return; } ITask <OperationResult> task = Games.GetArchiveClient().UpdateArchive(serverArchive); task.AddOnSuccessListener((result) => { Debug.Log("OperationResult:" + ((operationResult == null) ? "" : operationResult.Different.ToString())); if (operationResult != null && !operationResult.Different) { Archive archive = operationResult.Difference.RecentArchive(); if (archive != null && archive.Summary != null) { Debug.Log("OperationResult:" + archive.Summary.Id); } else { HandleDifference(operationResult); } } }).AddOnFailureListener((exception) => { Debug.Log("[HMS:] OperationResult" + exception.ErrorCode); }); } }