aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FEATURES.md3
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/SkyblockerInitializer.java2
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java72
-rw-r--r--src/main/resources/assets/skyblocker/lang/en_us.json1
4 files changed, 77 insertions, 1 deletions
diff --git a/FEATURES.md b/FEATURES.md
index 9c9afafc..29adb224 100644
--- a/FEATURES.md
+++ b/FEATURES.md
@@ -7,4 +7,5 @@
* Drill Fuel in Item Durability Bar
* Hotbar Slot Lock Keybind (Select the hotbar slot you want to lock/unlock and press the button)
* price tooltip: npc, bazaar (avg, lbin), ah, museum
-* reparty: write /rp to reparty \ No newline at end of file
+* reparty: write /rp to reparty
+* Wiki Lookup \ No newline at end of file
diff --git a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerInitializer.java b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerInitializer.java
index b3a50697..93eac100 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerInitializer.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerInitializer.java
@@ -3,6 +3,7 @@ package me.xmrvizzy.skyblocker;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import me.xmrvizzy.skyblocker.skyblock.HotbarSlotLock;
import me.xmrvizzy.skyblocker.skyblock.item.PriceInfoTooltip;
+import me.xmrvizzy.skyblocker.skyblock.item.WikiLookup;
import net.fabricmc.api.ClientModInitializer;
public class SkyblockerInitializer implements ClientModInitializer {
@@ -11,5 +12,6 @@ public class SkyblockerInitializer implements ClientModInitializer {
HotbarSlotLock.init();
SkyblockerConfig.init();
PriceInfoTooltip.init();
+ WikiLookup.init();
}
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java
new file mode 100644
index 00000000..30da694e
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java
@@ -0,0 +1,72 @@
+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 net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
+import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
+import net.minecraft.client.MinecraftClient;
+import net.minecraft.client.option.KeyBinding;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NbtCompound;
+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;
+
+public class WikiLookup {
+ public static KeyBinding wikiLookup;
+ static MinecraftClient client = MinecraftClient.getInstance();
+ static String id;
+ public static Gson gson = new Gson();
+
+ public static void init(){
+ wikiLookup = KeyBindingHelper.registerKeyBinding(new KeyBinding(
+ "key.wikiLookup",
+ GLFW.GLFW_KEY_F4,
+ "key.categories.skyblocker"
+ ));
+ ClientTickEvents.END_CLIENT_TICK.register(client -> {
+ while (wikiLookup.wasPressed()) {
+ id = getSkyblockId();
+
+ 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").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);
+ }
+
+ }
+ });
+ }
+
+ public static String getSkyblockId() {
+
+ //Grabbing the skyblock NBT data
+ ItemStack mainStack = client.player.getMainHandStack();
+ NbtCompound nbt = mainStack.getSubNbt("ExtraAttributes");
+ if (nbt != null) {
+ id = nbt.getString("id");
+ }
+
+ return id;
+ }
+
+}
diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json
index a1f0198e..680787e8 100644
--- a/src/main/resources/assets/skyblocker/lang/en_us.json
+++ b/src/main/resources/assets/skyblocker/lang/en_us.json
@@ -1,6 +1,7 @@
{
"key.categories.skyblocker": "Skyblocker",
"key.hotbarSlotLock": "Slot Lock (Hotbar)",
+ "key.wikiLookup": "Wiki Lookup",
"text.autoconfig.skyblocker.title": "Skyblocker Settings",