From 78f0df9eafaab4ce5fea4ab45ef9c268929565ad Mon Sep 17 00:00:00 2001 From: rootdarkarchon Date: Thu, 23 Feb 2023 00:51:01 +0100 Subject: [PATCH] do not send forbidden files --- MareSynchronos/Factories/CharacterDataFactory.cs | 5 +++-- MareSynchronos/WebAPI/ApIController.Functions.Files.cs | 9 +++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/MareSynchronos/Factories/CharacterDataFactory.cs b/MareSynchronos/Factories/CharacterDataFactory.cs index 687759d..c1bfd32 100644 --- a/MareSynchronos/Factories/CharacterDataFactory.cs +++ b/MareSynchronos/Factories/CharacterDataFactory.cs @@ -132,11 +132,12 @@ public class CharacterDataFactory : MediatorSubscriberBase // wait until chara is not drawing and present so nothing spontaneously explodes _dalamudUtil.WaitWhileCharacterIsDrawing(_logger, playerRelatedObject, Guid.NewGuid(), 30000, ct: token); - var chara = _dalamudUtil.CreateGameObject(charaPointer)!; - while (!DalamudUtil.IsObjectPresent(chara)) + int totalWaitTime = 10000; + while (!DalamudUtil.IsObjectPresent(_dalamudUtil.CreateGameObject(charaPointer)) && totalWaitTime > 0) { _logger.LogTrace("Character is null but it shouldn't be, waiting"); await Task.Delay(50).ConfigureAwait(false); + totalWaitTime -= 50; } Stopwatch st = Stopwatch.StartNew(); diff --git a/MareSynchronos/WebAPI/ApIController.Functions.Files.cs b/MareSynchronos/WebAPI/ApIController.Functions.Files.cs index d392c00..d1e5540 100644 --- a/MareSynchronos/WebAPI/ApIController.Functions.Files.cs +++ b/MareSynchronos/WebAPI/ApIController.Functions.Files.cs @@ -261,7 +261,7 @@ public partial class ApiController foreach (var dto in downloadFileInfoFromService.Where(c => c.IsForbidden)) { - if (ForbiddenTransfers.All(f => !string.Equals(f.Hash, dto.Hash, StringComparison.Ordinal))) + if (!ForbiddenTransfers.Any(f => string.Equals(f.Hash, dto.Hash, StringComparison.Ordinal))) { ForbiddenTransfers.Add(new DownloadFileTransfer(dto)); } @@ -455,7 +455,7 @@ public partial class ApiController } } - foreach(var file in unverifiedUploadHashes.Where(c=>!CurrentUploads.Any(u=> string.Equals(u.Hash, c, StringComparison.Ordinal)))) + foreach (var file in unverifiedUploadHashes.Where(c => !CurrentUploads.Any(u => string.Equals(u.Hash, c, StringComparison.Ordinal)))) { _verifiedUploadedHashes[file] = DateTime.UtcNow; } @@ -467,9 +467,10 @@ public partial class ApiController { _logger.LogInformation("Pushing character data for " + character.DataHash.Value + " to " + string.Join(", ", visibleCharacters.Select(c => c.AliasOrUID))); StringBuilder sb = new(); - foreach (var item in character.FileReplacements) + foreach (var kvp in character.FileReplacements.ToList()) { - sb.AppendLine($"FileReplacements for {item.Key}: {item.Value.Count}"); + sb.AppendLine($"FileReplacements for {kvp.Key}: {kvp.Value.Count}"); + character.FileReplacements[kvp.Key].RemoveAll(i => ForbiddenTransfers.Any(f => string.Equals(f.Hash, i.Hash, StringComparison.OrdinalIgnoreCase))); } foreach (var item in character.GlamourerData) {