From b5e4c2ae960c461377071d694a973f2628526b47 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 30 Apr 2026 23:12:57 +0000 Subject: [PATCH 1/2] Initial plan From 115aae1b63a9d35b393cc144d23e7409c98fb206 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 30 Apr 2026 23:20:12 +0000 Subject: [PATCH 2/2] Fix game freeze when connecting to Hypixel Agent-Logs-Url: https://github.com/Coflnet/SkyblockMod/sessions/4aded30b-efe1-4125-9ff8-80273bbab1a7 Co-authored-by: Ekwav <16632490+Ekwav@users.noreply.github.com> --- src/main/java/com/coflnet/sky/SkyCofl.java | 11 +++++++++-- .../java/com/coflnet/sky/handlers/EventHandler.java | 4 ++-- .../com/coflnet/sky/handlers/EventRegistry.java | 13 ++++++++++--- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/coflnet/sky/SkyCofl.java b/src/main/java/com/coflnet/sky/SkyCofl.java index 8a1f7e7..3a5642b 100644 --- a/src/main/java/com/coflnet/sky/SkyCofl.java +++ b/src/main/java/com/coflnet/sky/SkyCofl.java @@ -53,8 +53,15 @@ public void preInit(FMLPreInitializationEvent event) { MinecraftForge.EVENT_BUS.register(new com.coflnet.sky.listeners.SellProtectionListener()); MinecraftForge.EVENT_BUS.register(new com.coflnet.sky.handlers.SellProtectionTooltipHandler()); - // Cache all the mods on load - WSCommandHandler.cacheMods(); + // Cache all the mods on load in background to avoid blocking the main thread + new Thread(() -> { + try { + WSCommandHandler.cacheMods(); + } catch (Exception e) { + System.err.println("Failed to cache mods: " + e.getMessage()); + e.printStackTrace(); + } + }, "cofl-cache-mods").start(); } @EventHandler diff --git a/src/main/java/com/coflnet/sky/handlers/EventHandler.java b/src/main/java/com/coflnet/sky/handlers/EventHandler.java index f2fd50c..6403b9f 100644 --- a/src/main/java/com/coflnet/sky/handlers/EventHandler.java +++ b/src/main/java/com/coflnet/sky/handlers/EventHandler.java @@ -163,13 +163,13 @@ private static void ProcessTabMenu(String line) { } private static void checkIfInSkyblock(String s) { - if ((s.contains("SKYBLOCK") || s.contains("E")) && !isInSkyblock) { + if (s.contains("SKYBLOCK") && !isInSkyblock) { if (config.autoStart) { CoflCore.Wrapper.stop(); CoflCore.Wrapper.startConnection(PlayerDataProvider.getUsername()); } isInSkyblock = true; - } else if (!s.contains("SKYBLOCK") && !s.contains("E") && isInSkyblock) { + } else if (!s.contains("SKYBLOCK") && isInSkyblock) { if (config.autoStart) { CoflCore.Wrapper.stop(); Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("connection to ") diff --git a/src/main/java/com/coflnet/sky/handlers/EventRegistry.java b/src/main/java/com/coflnet/sky/handlers/EventRegistry.java index 3821ffb..b9b32fa 100644 --- a/src/main/java/com/coflnet/sky/handlers/EventRegistry.java +++ b/src/main/java/com/coflnet/sky/handlers/EventRegistry.java @@ -77,11 +77,18 @@ public class EventRegistry { @SubscribeEvent public void onDisconnectedFromServerEvent(ClientDisconnectionFromServerEvent event) { + EventHandler.isInSkyblock = false; if (CoflCore.CoflCore.Wrapper != null && CoflCore.CoflCore.Wrapper.isRunning) { System.out.println("Disconnected from server"); - CoflCore.CoflCore.Wrapper.stop(); - EventHandler.isInSkyblock = false; - System.out.println("SkyCofl stopped"); + new Thread(() -> { + try { + CoflCore.CoflCore.Wrapper.stop(); + System.out.println("SkyCofl stopped"); + } catch (Exception e) { + System.err.println("Failed to stop SkyCofl on disconnect: " + e.getMessage()); + e.printStackTrace(); + } + }, "cofl-disconnect").start(); } }