From 921b5aa24f312dd40525eed6ac2ba4c97695f1c1 Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Sun, 22 Feb 2026 00:45:02 +0100 Subject: [PATCH] Request datapackages as individual responses. --- .../DataPackage/DataPackageCache.cs | 39 +++++++++---------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/Archipelago.MultiClient.Net/DataPackage/DataPackageCache.cs b/Archipelago.MultiClient.Net/DataPackage/DataPackageCache.cs index 6d994444..c77528fc 100644 --- a/Archipelago.MultiClient.Net/DataPackage/DataPackageCache.cs +++ b/Archipelago.MultiClient.Net/DataPackage/DataPackageCache.cs @@ -31,27 +31,25 @@ public DataPackageCache(IArchipelagoSocketHelper socket, IFileSystemDataPackageP } void Socket_PacketReceived(ArchipelagoPacketBase packet) - { - switch (packet) + { + switch (packet) + { + case RoomInfoPacket roomInfoPacket: + if (FileSystemDataPackageProvider == null) + FileSystemDataPackageProvider = new FileSystemCheckSumDataPackageProvider(); + foreach (var game in GetCacheInvalidatedGamesByChecksum(roomInfoPacket)) { - case RoomInfoPacket roomInfoPacket: - if (FileSystemDataPackageProvider == null) - FileSystemDataPackageProvider = new FileSystemCheckSumDataPackageProvider(); - - var invalidated = GetCacheInvalidatedGamesByChecksum(roomInfoPacket); - if (invalidated.Any()) - { - socket.SendPacket(new GetDataPackagePacket - { - Games = invalidated.ToArray() - }); - } - break; - case DataPackagePacket packagePacket: - UpdateDataPackageFromServer(packagePacket.DataPackage); - break; + socket.SendPacket(new GetDataPackagePacket + { + Games = new[] { game } + }); } - } + break; + case DataPackagePacket packagePacket: + UpdateDataPackageFromServer(packagePacket.DataPackage); + break; + } + } public bool TryGetDataPackageFromCache(out Dictionary gameData) { @@ -100,4 +98,5 @@ List GetCacheInvalidatedGamesByChecksum(RoomInfoPacket packet) return gamesNeedingUpdating; } } -} \ No newline at end of file + +}