From 00c1af28cc40cba1a3550bb97564c48164ee925c Mon Sep 17 00:00:00 2001
From: Corey Frenette <lordmonoxide@gmail.com>
Date: Sat, 1 Feb 2025 13:52:16 -0400
Subject: [PATCH] Add update check timeout and update check skip (#2000)

---
 src/main/java/legend/core/GameEngine.java | 6 ++++++
 src/main/java/legend/core/Updater.java    | 4 +++-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/main/java/legend/core/GameEngine.java b/src/main/java/legend/core/GameEngine.java
index 0c28b8bae..b16193614 100644
--- a/src/main/java/legend/core/GameEngine.java
+++ b/src/main/java/legend/core/GameEngine.java
@@ -517,6 +517,12 @@ private static void loadGfx() {
   }
 
   private static void skip() {
+    if(time == 0) {
+      synchronized(UPDATER_LOCK) {
+        UPDATE_CHECK_FINISHED = true;
+      }
+    }
+
     time = 0;
     fade1 = 0.0f;
     fade2 = 0.0f;
diff --git a/src/main/java/legend/core/Updater.java b/src/main/java/legend/core/Updater.java
index 1fa67def6..a0bd99198 100644
--- a/src/main/java/legend/core/Updater.java
+++ b/src/main/java/legend/core/Updater.java
@@ -3,6 +3,7 @@
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.asynchttpclient.AsyncHttpClient;
+import org.asynchttpclient.DefaultAsyncHttpClientConfig;
 import org.asynchttpclient.ListenableFuture;
 import org.asynchttpclient.Response;
 import org.jetbrains.annotations.NotNull;
@@ -11,6 +12,7 @@
 import org.json.JSONObject;
 
 import java.io.IOException;
+import java.time.Duration;
 import java.time.ZonedDateTime;
 import java.util.ArrayList;
 import java.util.List;
@@ -43,7 +45,7 @@ public void check(final Consumer<Release> onComplete) {
     synchronized(this) {
       if(this.client == null) {
         try {
-          this.client = asyncHttpClient();
+          this.client = asyncHttpClient(new DefaultAsyncHttpClientConfig.Builder().setConnectTimeout(Duration.ofSeconds(10)).setReadTimeout(Duration.ofSeconds(10)).build());
         } catch(final Throwable r) {
           LOGGER.error("Failed to initialize updater");
         }