diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/LobFileHost.java b/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/LobFileHost.java index 1f68725eb..2d7a96f4d 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/LobFileHost.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/LobFileHost.java @@ -59,8 +59,11 @@ public class LobFileHost implements ResourcePackHost { @Override public CompletableFuture upload(Path resourcePackPath) { CompletableFuture future = new CompletableFuture<>(); + long totalStartTime = System.currentTimeMillis(); + if (this.forcedPackPath != null) resourcePackPath = forcedPackPath; Path finalResourcePackPath = resourcePackPath; + CraftEngine.instance().scheduler().executeAsync(() -> { try { Map hashes = calculateHashes(finalResourcePackPath); @@ -77,14 +80,29 @@ public class LobFileHost implements ResourcePackHost { .POST(buildMultipartBody(finalResourcePackPath, sha256Hash, boundary)) .build(); + long uploadStart = System.currentTimeMillis(); + CraftEngine.instance().logger().info("[LobFile] Starting file upload..."); + client.sendAsync(request, HttpResponse.BodyHandlers.ofString()) - .thenAccept(response -> handleUploadResponse(response, future, sha1Hash)) + .thenAccept(response -> { + long uploadTime = System.currentTimeMillis() - uploadStart; + CraftEngine.instance().logger().info( + "[LobFile] Upload request completed in " + uploadTime + "ms"); + + handleUploadResponse(response, future, sha1Hash); + }) .exceptionally(ex -> { + long totalTime = System.currentTimeMillis() - totalStartTime; + CraftEngine.instance().logger().severe( + "[LobFile] Upload failed after " + totalTime + "ms", ex); future.completeExceptionally(ex); return null; }); } } catch (IOException | NoSuchAlgorithmException e) { + long totalTime = System.currentTimeMillis() - totalStartTime; + CraftEngine.instance().logger().severe( + "[LobFile] Upload preparation failed after " + totalTime + "ms", e); future.completeExceptionally(e); } });