From 51dd445a31f5b720033c4ad90f6a40c5e86e5488 Mon Sep 17 00:00:00 2001 From: Sardelka Date: Wed, 20 Jul 2022 09:32:26 +0800 Subject: [PATCH] Fix resource duplication --- RageCoop.Client/Networking/DownloadManager.cs | 22 +++++-------------- RageCoop.Server/Scripting/Resources.cs | 6 ++--- 2 files changed, 8 insertions(+), 20 deletions(-) diff --git a/RageCoop.Client/Networking/DownloadManager.cs b/RageCoop.Client/Networking/DownloadManager.cs index 12a58ca..71391b7 100644 --- a/RageCoop.Client/Networking/DownloadManager.cs +++ b/RageCoop.Client/Networking/DownloadManager.cs @@ -15,9 +15,9 @@ namespace RageCoop.Client { var fr = new Packets.FileTransferRequest(); fr.Unpack(data); - if (fr.Name.EndsWith(".zip")) + if (fr.Name.EndsWith(".res")) { - _zips.Add(fr.Name); + _resources.Add(fr.Name); } return new Packets.FileTransferResponse() { @@ -44,7 +44,7 @@ namespace RageCoop.Client { try { - Main.Resources.Load(ResourceFolder,_zips.ToArray()); + Main.Resources.Load(ResourceFolder,_resources.ToArray()); return new Packets.FileTransferResponse() { ID=0, Response=FileResponse.Loaded }; } catch(Exception ex) @@ -62,7 +62,7 @@ namespace RageCoop.Client } } private static readonly Dictionary InProgressDownloads = new Dictionary(); - private static readonly List _zips = new List(); + private static readonly HashSet _resources = new HashSet(); public static bool AddFile(int id, string name, long length) { var path = $"{ResourceFolder}\\{name}"; @@ -149,10 +149,6 @@ namespace RageCoop.Client { InProgressDownloads.Remove(id); f.Dispose(); - if (f.FileName.EndsWith(".zip")) - { - _zips.Add(f.FileName); - } Main.Logger.Info($"Download finished:{f.FileName}"); DownloadCompleted?.Invoke(null, Path.Combine(ResourceFolder, f.FileName)); } @@ -172,15 +168,7 @@ namespace RageCoop.Client } InProgressDownloads.Clear(); } - if (Directory.Exists(ResourceFolder)) - { - - foreach (var zip in Directory.GetDirectories(ResourceFolder, "*.zip")) - { - File.Delete(zip); - } - } - _zips.Clear(); + _resources.Clear(); } } diff --git a/RageCoop.Server/Scripting/Resources.cs b/RageCoop.Server/Scripting/Resources.cs index e9e15d4..3b5b8cc 100644 --- a/RageCoop.Server/Scripting/Resources.cs +++ b/RageCoop.Server/Scripting/Resources.cs @@ -41,7 +41,7 @@ namespace RageCoop.Server.Scripting { // Pack client side resource as a zip file Logger?.Info("Packing client-side resource: "+resourceFolder); - var zipPath = Path.Combine(tmpDir, Path.GetFileName(resourceFolder))+".zip"; + var zipPath = Path.Combine(tmpDir, Path.GetFileName(resourceFolder))+".res"; try { using (ZipFile zip = ZipFile.Create(zipPath)) @@ -67,7 +67,7 @@ namespace RageCoop.Server.Scripting } } } - var packed = Directory.GetFiles(path, "*.zip", SearchOption.TopDirectoryOnly); + var packed = Directory.GetFiles(path, "*.res", SearchOption.TopDirectoryOnly); if (packed.Length>0) { ClientResourceZips.AddRange(packed); @@ -100,7 +100,7 @@ namespace RageCoop.Server.Scripting Logger?.Error(ex); } } - foreach (var resource in Directory.GetFiles(path, "*.zip", SearchOption.TopDirectoryOnly)) + foreach (var resource in Directory.GetFiles(path, "*.res", SearchOption.TopDirectoryOnly)) { try {