aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/skyblock/item/WikiLookup.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/skyblock/item/WikiLookup.java')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/WikiLookup.java31
1 files changed, 12 insertions, 19 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/WikiLookup.java b/src/main/java/de/hysky/skyblocker/skyblock/item/WikiLookup.java
index 5815c11f..109e5503 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/WikiLookup.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/WikiLookup.java
@@ -2,7 +2,9 @@ package de.hysky.skyblocker.skyblock.item;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.skyblock.itemlist.ItemRepository;
+import de.hysky.skyblocker.utils.Constants;
import de.hysky.skyblocker.utils.ItemUtils;
+import de.hysky.skyblocker.utils.Utils;
import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
import net.minecraft.client.option.KeyBinding;
import net.minecraft.client.util.InputUtil;
@@ -10,6 +12,7 @@ import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.screen.slot.Slot;
import net.minecraft.text.Text;
import net.minecraft.util.Util;
+import org.jetbrains.annotations.NotNull;
import org.lwjgl.glfw.GLFW;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -19,7 +22,6 @@ import java.util.concurrent.CompletableFuture;
public class WikiLookup {
private static final Logger LOGGER = LoggerFactory.getLogger(WikiLookup.class);
public static KeyBinding wikiLookup;
- private static String id;
public static void init() {
wikiLookup = KeyBindingHelper.registerKeyBinding(new KeyBinding(
@@ -30,24 +32,15 @@ public class WikiLookup {
));
}
- public static void getSkyblockId(Slot slot) {
- //Grabbing the skyblock NBT data
- ItemUtils.getItemIdOptional(slot.getStack()).ifPresent(newId -> id = newId);
- }
+ public static void openWiki(@NotNull Slot slot, @NotNull PlayerEntity player) {
+ if (!Utils.isOnSkyblock() || !SkyblockerConfigManager.get().general.wikiLookup.enableWikiLookup) return;
- public static void openWiki(Slot slot, PlayerEntity player) {
- if (SkyblockerConfigManager.get().general.wikiLookup.enableWikiLookup) {
- getSkyblockId(slot);
- try {
- String wikiLink = ItemRepository.getWikiLink(id, player);
- if (wikiLink != null) CompletableFuture.runAsync(() -> Util.getOperatingSystem().open(wikiLink));
- } catch (IndexOutOfBoundsException | IllegalStateException e) {
- LOGGER.error("[Skyblocker] Error while retrieving wiki article...", e);
- if (player != null) {
- player.sendMessage(Text.of("[Skyblocker] Error while retrieving wiki article, see logs..."), false);
- }
- }
- }
+ ItemUtils.getItemIdOptional(slot.getStack())
+ .map(ItemRepository::getWikiLink)
+ .ifPresentOrElse(wikiLink -> CompletableFuture.runAsync(() -> Util.getOperatingSystem().open(wikiLink)).exceptionally(e -> {
+ LOGGER.error("[Skyblocker] Error while retrieving wiki article...", e);
+ player.sendMessage(Constants.PREFIX.get().append("Error while retrieving wiki article, see logs..."), false);
+ return null;
+ }), () -> player.sendMessage(Constants.PREFIX.get().append(Text.translatable("skyblocker.wikiLookup.noArticleFound")), false));
}
-
}