aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2024-05-04 11:58:40 -0400
committerKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2024-05-04 11:58:40 -0400
commitf7b13895a4605e1d22e2c00e7b62c7365902d1aa (patch)
treefe811e98cbbdf2b208853aded6839c3286e0ab60
parent40d395f1460ce17ccd433644bf989c98554e6949 (diff)
downloadSkyblocker-f7b13895a4605e1d22e2c00e7b62c7365902d1aa.tar.gz
Skyblocker-f7b13895a4605e1d22e2c00e7b62c7365902d1aa.tar.bz2
Skyblocker-f7b13895a4605e1d22e2c00e7b62c7365902d1aa.zip
Refactor WikiLookup error messages
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/WikiLookup.java20
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemRepository.java13
3 files changed, 11 insertions, 24 deletions
diff --git a/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java b/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java
index ff510cf4..9ae25d85 100644
--- a/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java
+++ b/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java
@@ -97,7 +97,7 @@ public abstract class HandledScreenMixin<T extends ScreenHandler> extends Screen
public void skyblocker$keyPressed(int keyCode, int scanCode, int modifiers, CallbackInfoReturnable<Boolean> cir) {
if (this.client != null && this.focusedSlot != null && keyCode != 256) {
//wiki lookup
- if (!this.client.options.inventoryKey.matchesKey(keyCode, scanCode) && WikiLookup.wikiLookup.matchesKey(keyCode, scanCode)) {
+ if (!this.client.options.inventoryKey.matchesKey(keyCode, scanCode) && WikiLookup.wikiLookup.matchesKey(keyCode, scanCode) && client.player != null) {
WikiLookup.openWiki(this.focusedSlot, client.player);
}
//item protection
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 19bef1e1..109e5503 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/WikiLookup.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/WikiLookup.java
@@ -10,7 +10,9 @@ import net.minecraft.client.option.KeyBinding;
import net.minecraft.client.util.InputUtil;
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;
@@ -30,19 +32,15 @@ public class WikiLookup {
));
}
- public static void openWiki(Slot slot, PlayerEntity player) {
+ public static void openWiki(@NotNull Slot slot, @NotNull PlayerEntity player) {
if (!Utils.isOnSkyblock() || !SkyblockerConfigManager.get().general.wikiLookup.enableWikiLookup) return;
- ItemUtils.getItemIdOptional(slot.getStack()).map(id -> ItemRepository.getWikiLink(id, player)).ifPresent(wikiLink -> {
- try {
- CompletableFuture.runAsync(() -> Util.getOperatingSystem().open(wikiLink));
- } catch (IndexOutOfBoundsException | IllegalStateException e) {
- LOGGER.error("[Skyblocker] Error while retrieving wiki article...", e);
- if (player != null) {
+ 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));
}
-
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemRepository.java b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemRepository.java
index 3379b693..4fd0f8cd 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemRepository.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemRepository.java
@@ -1,16 +1,13 @@
package de.hysky.skyblocker.skyblock.itemlist;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
-import de.hysky.skyblocker.utils.Constants;
import de.hysky.skyblocker.utils.ItemUtils;
import de.hysky.skyblocker.utils.NEURepoManager;
import io.github.moulberry.repo.data.NEUCraftingRecipe;
import io.github.moulberry.repo.data.NEUItem;
import io.github.moulberry.repo.data.NEURecipe;
-import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
-import net.minecraft.text.Text;
import org.jetbrains.annotations.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -67,10 +64,9 @@ public class ItemRepository {
}
}
- public static String getWikiLink(String internalName, PlayerEntity player) {
+ public static String getWikiLink(String internalName) {
NEUItem item = NEURepoManager.NEU_REPO.getItems().getItemBySkyblockId(internalName);
if (item == null || item.getInfo() == null || item.getInfo().isEmpty()) {
- warnNoWikiLink(player);
return null;
}
@@ -83,16 +79,9 @@ public class ItemRepository {
} else if (wikiLink1.startsWith(wikiDomain)) {
return wikiLink1;
}
- warnNoWikiLink(player);
return null;
}
- private static void warnNoWikiLink(PlayerEntity player) {
- if (player != null) {
- player.sendMessage(Constants.PREFIX.get().append(Text.translatable("skyblocker.wikiLookup.noArticleFound")), false);
- }
- }
-
public static List<SkyblockCraftingRecipe> getRecipes(String internalName) {
List<SkyblockCraftingRecipe> result = new ArrayList<>();
for (SkyblockCraftingRecipe recipe : recipes) {