From 1ad556ef5983de7723b8e4c143b26b6bd8df9846 Mon Sep 17 00:00:00 2001 From: Qboi123 Date: Fri, 10 Mar 2023 19:32:36 +0100 Subject: [PATCH] F --- .../devices/api/utils/OnlineRequest.java | 5 +++++ .../java/com/ultreon/devices/core/Laptop.java | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/common/src/main/java/com/ultreon/devices/api/utils/OnlineRequest.java b/common/src/main/java/com/ultreon/devices/api/utils/OnlineRequest.java index 7924e5487..88cd1311b 100644 --- a/common/src/main/java/com/ultreon/devices/api/utils/OnlineRequest.java +++ b/common/src/main/java/com/ultreon/devices/api/utils/OnlineRequest.java @@ -1,5 +1,6 @@ package com.ultreon.devices.api.utils; +import com.ultreon.devices.core.Laptop; import com.ultreon.devices.util.StreamUtils; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; @@ -121,6 +122,10 @@ public void run() { while (!requests.isEmpty()) { RequestWrapper wrapper = requests.poll(); + if (Laptop.isOffline()) { + wrapper.handler.handle(false, "Disconnected from the internet."); + return; + } try { URL url = new URL(wrapper.url); checkURLForSuspicions(url); diff --git a/common/src/main/java/com/ultreon/devices/core/Laptop.java b/common/src/main/java/com/ultreon/devices/core/Laptop.java index 1cab4206c..8dddfc438 100644 --- a/common/src/main/java/com/ultreon/devices/core/Laptop.java +++ b/common/src/main/java/com/ultreon/devices/core/Laptop.java @@ -17,6 +17,7 @@ import com.ultreon.devices.api.task.TaskManager; import com.ultreon.devices.api.utils.OnlineRequest; import com.ultreon.devices.block.entity.LaptopBlockEntity; +import com.ultreon.devices.core.network.Connection; import com.ultreon.devices.core.task.TaskInstallApp; import com.ultreon.devices.object.AppInfo; import com.ultreon.devices.programs.system.DiagnosticsApp; @@ -71,6 +72,8 @@ public class Laptop extends Screen implements System { private static final List APPLICATIONS = new ArrayList<>(); private static boolean worldLess; private static Laptop instance; + @Nullable + private final LaptopBlockEntity blockEntity; @PlatformOnly("fabric") public static List getApplicationsForFabric() { @@ -180,12 +183,27 @@ public boolean add(Window window) { // World-less flag. Laptop.worldLess = worldLess; + this.blockEntity = laptop; } public static Laptop getInstance() { return instance; } + public static boolean isOffline() { + Laptop laptop = instance; + if (laptop == null) { + return false; + } + + LaptopBlockEntity blockEntity = laptop.blockEntity; + if (blockEntity == null) { + return false; + } + + return blockEntity.getConnection() == null; + } + public CompoundTag getModSystemTag(Mod mod) { return getModSystemTag(mod.getModId()); }