From 4eeae3e96aa6dab1488b68d820971ff4323e8b48 Mon Sep 17 00:00:00 2001 From: Zaxar163 Date: Wed, 3 Jul 2019 17:59:21 +0300 Subject: [PATCH] =?UTF-8?q?[FIX]=20=D0=9D=D0=BE=D1=80=D0=BC=D0=B0=D0=BB?= =?UTF-8?q?=D1=8C=D0=BD=D0=B0=D1=8F=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D1=80=D0=B0=D0=B7=D0=BC=D0=B5=D1=80=D0=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gravit/launcher/request/update/UpdateRequest.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/LauncherAPI/src/main/java/pro/gravit/launcher/request/update/UpdateRequest.java b/LauncherAPI/src/main/java/pro/gravit/launcher/request/update/UpdateRequest.java index 245df97e..271af850 100644 --- a/LauncherAPI/src/main/java/pro/gravit/launcher/request/update/UpdateRequest.java +++ b/LauncherAPI/src/main/java/pro/gravit/launcher/request/update/UpdateRequest.java @@ -3,12 +3,14 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; +import java.nio.file.Paths; import java.time.Duration; import java.time.Instant; import java.util.ArrayList; import java.util.List; import java.util.Map.Entry; import java.util.Objects; +import java.util.StringTokenizer; import pro.gravit.launcher.Launcher; import pro.gravit.launcher.LauncherAPI; @@ -210,7 +212,7 @@ public UpdateRequestEvent requestDo(StandartClientWebSocketService service) thro } catch (IOException ex) { LogHelper.error(ex); } - if (entry.size() < IOHelper.MB16) { + if (getPathed(name, e.hdir).size() < IOHelper.MB16) { adds.add(new ListDownloader.DownloadTask(path, -1, true)); return HashedDir.WalkAction.SKIP_DIR; } @@ -310,4 +312,11 @@ private void updateState(String filePath, long fileDownloaded, long fileSize) { stateCallback.call(new State(filePath, fileDownloaded, fileSize, totalDownloaded, totalSize, Duration.between(startTime, Instant.now()))); } + + private static HashedEntry getPathed(String path, HashedDir in) { + String[] parts = path.split(IOHelper.CROSS_SEPARATOR); + HashedEntry current = in; + for (String part : parts) current = ((HashedDir) current).getEntry(part); + return current; + } }