aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFix3d <serhanduzce@gmail.com>2023-03-22 13:55:34 +0300
committerFix3d <serhanduzce@gmail.com>2023-03-22 13:55:34 +0300
commit4a3b5a00c174d9c7abe2cfaed84ac09bf464650a (patch)
tree5ce2571fb4448ed7da1ac89054a7f18f255f018a
parentf362d95f9b8477c1f8190e79ca390a09adb658c5 (diff)
downloadSkyblocker-4a3b5a00c174d9c7abe2cfaed84ac09bf464650a.tar.gz
Skyblocker-4a3b5a00c174d9c7abe2cfaed84ac09bf464650a.tar.bz2
Skyblocker-4a3b5a00c174d9c7abe2cfaed84ac09bf464650a.zip
fix freezing while open wiki and...
get wiki link from local repo which is same and exist for recipe book
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java29
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemRegistry.java16
2 files changed, 22 insertions, 23 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java
index afaf487f..76b4e7c3 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java
@@ -1,9 +1,7 @@
package me.xmrvizzy.skyblocker.skyblock.item;
import com.google.gson.Gson;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
+import me.xmrvizzy.skyblocker.skyblock.itemlist.ItemRegistry;
import me.xmrvizzy.skyblocker.utils.Utils;
import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
import net.minecraft.client.MinecraftClient;
@@ -16,11 +14,7 @@ import net.minecraft.text.Text;
import net.minecraft.util.Util;
import org.lwjgl.glfw.GLFW;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.URL;
-import java.net.URLConnection;
+import java.util.concurrent.CompletableFuture;
public class WikiLookup {
public static KeyBinding wikiLookup;
@@ -51,23 +45,12 @@ public class WikiLookup {
if (Utils.isOnSkyblock) {
id = getSkyblockId(slot);
try {
- //Setting up a connection with the repo
- String urlString = "https://raw.githubusercontent.com/NotEnoughUpdates/NotEnoughUpdates-REPO/master/items/" + id + ".json";
- URL url = new URL(urlString);
- URLConnection request = url.openConnection();
- request.connect();
-
- //yoinking the wiki link
- JsonElement root = JsonParser.parseReader(new InputStreamReader((InputStream) request.getContent()));
- JsonObject rootobj = root.getAsJsonObject();
- String wikiLink = rootobj.get("info").getAsJsonArray().get(1).getAsString();
- Util.getOperatingSystem().open(wikiLink);
- } catch (IOException | NullPointerException e) {
- e.printStackTrace();
- client.player.sendMessage(Text.of("Can't locate a wiki article for this item..."), false);
+ String wikiLink = ItemRegistry.getWikiLink(id);
+ CompletableFuture.runAsync(() -> Util.getOperatingSystem().open(wikiLink));
} catch (IndexOutOfBoundsException | IllegalStateException e) {
e.printStackTrace();
- client.player.sendMessage(Text.of("Error while retrieving wiki article..."), false);
+ if (client.player != null)
+ client.player.sendMessage(Text.of("Error while retrieving wiki article..."), false);
}
}
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemRegistry.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemRegistry.java
index 7bfa0997..2bb16a34 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemRegistry.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemRegistry.java
@@ -4,13 +4,16 @@ import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import net.fabricmc.loader.api.FabricLoader;
+import net.minecraft.client.MinecraftClient;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
+import net.minecraft.text.Text;
import org.eclipse.jgit.api.Git;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
+import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.*;
@@ -24,6 +27,7 @@ public class ItemRegistry {
protected static List<ItemStack> items = new ArrayList<>();
protected static Map<String, ItemStack> itemsMap = new HashMap<>();
protected static List<Recipe> recipes = new ArrayList<>();
+ static final MinecraftClient client = MinecraftClient.getInstance();
// TODO: make async
public static void init() {
@@ -95,6 +99,18 @@ public class ItemRegistry {
});
}
+ public static String getWikiLink(String internalName) {
+ try {
+ String fileContent = Files.readString(ITEM_LIST_DIR.resolve(internalName + ".json"));
+ JsonObject fileJson = JsonParser.parseString(fileContent).getAsJsonObject();
+ return fileJson.get("info").getAsJsonArray().get(1).getAsString();
+ } catch (IOException | NullPointerException e) {
+ e.printStackTrace();
+ client.player.sendMessage(Text.of("Can't locate a wiki article for this item..."), false);
+ return null;
+ }
+ }
+
public static List<Recipe> getRecipes(String internalName) {
List<Recipe> result = new ArrayList<>();
for (Recipe recipe : recipes)