aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorAlex <8379108+Alex33856@users.noreply.github.com>2025-06-17 14:15:13 -0400
committerGitHub <noreply@github.com>2025-06-17 14:15:13 -0400
commit0e9006f6ac3fb645369cce8ce5bd9c53e48f11b2 (patch)
treee8686b409ce5f10832c96ef26b7654e308e8e6ed /src/main/java
parentd6f1b53dfc628126f9964bbaa9717e4e0709f69a (diff)
downloadSkyblocker-0e9006f6ac3fb645369cce8ce5bd9c53e48f11b2.tar.gz
Skyblocker-0e9006f6ac3fb645369cce8ce5bd9c53e48f11b2.tar.bz2
Skyblocker-0e9006f6ac3fb645369cce8ce5bd9c53e48f11b2.zip
Add separate wiki lookup keybinds (#1324)
* Add separate wiki lookup keybinds * Remove unnecessary color code formatting * Readd and Deprecate config option * Refactor WikiLookup * Refactor ItemRepository --------- Co-authored-by: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java12
-rw-r--r--src/main/java/de/hysky/skyblocker/config/configs/GeneralConfig.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/WikiLookup.java42
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemRepository.java5
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockCraftingRecipeResults.java21
6 files changed, 50 insertions, 42 deletions
diff --git a/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java
index 3f799cd0..48784d18 100644
--- a/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java
+++ b/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java
@@ -5,6 +5,7 @@ import de.hysky.skyblocker.UpdateNotifications;
import de.hysky.skyblocker.config.ConfigUtils;
import de.hysky.skyblocker.config.SkyblockerConfig;
import de.hysky.skyblocker.config.configs.GeneralConfig;
+import de.hysky.skyblocker.skyblock.item.WikiLookup;
import de.hysky.skyblocker.skyblock.item.tooltip.adders.CraftPriceTooltip;
import de.hysky.skyblocker.skyblock.shortcut.ShortcutsConfigScreen;
import de.hysky.skyblocker.skyblock.speedPreset.SpeedPresetsScreen;
@@ -348,21 +349,14 @@ public class GeneralCategory {
.collapsed(true)
.option(Option.<Boolean>createBuilder()
.name(Text.translatable("skyblocker.config.general.wikiLookup.enableWikiLookup"))
- .description(OptionDescription.of(Text.translatable("skyblocker.config.general.wikiLookup.enableWikiLookup.@Tooltip")))
+ .description(OptionDescription.of(Text.translatable("skyblocker.config.general.wikiLookup.enableWikiLookup.@Tooltip",
+ WikiLookup.officialWikiLookup.getBoundKeyLocalizedText(), WikiLookup.fandomWikiLookup.getBoundKeyLocalizedText())))
.binding(defaults.general.wikiLookup.enableWikiLookup,
() -> config.general.wikiLookup.enableWikiLookup,
newValue -> config.general.wikiLookup.enableWikiLookup = newValue)
.controller(ConfigUtils::createBooleanController)
.build())
.option(ConfigUtils.createShortcutToKeybindsScreen())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.general.wikiLookup.officialWiki"))
- .description(OptionDescription.of(Text.translatable("skyblocker.config.general.wikiLookup.officialWiki.@Tooltip")))
- .binding(defaults.general.wikiLookup.officialWiki,
- () -> config.general.wikiLookup.officialWiki,
- newValue -> config.general.wikiLookup.officialWiki = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
.build())
//Special Effects
diff --git a/src/main/java/de/hysky/skyblocker/config/configs/GeneralConfig.java b/src/main/java/de/hysky/skyblocker/config/configs/GeneralConfig.java
index 258d43fa..b36a2c3f 100644
--- a/src/main/java/de/hysky/skyblocker/config/configs/GeneralConfig.java
+++ b/src/main/java/de/hysky/skyblocker/config/configs/GeneralConfig.java
@@ -252,8 +252,8 @@ public class GeneralConfig {
@SerialEntry
public boolean enableWikiLookup = true;
- @SerialEntry
- public boolean officialWiki = true;
+ @Deprecated
+ public transient boolean officialWiki = true;
}
public static class SpecialEffects {
diff --git a/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java b/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java
index d5734e63..becad8c0 100644
--- a/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java
+++ b/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java
@@ -117,8 +117,12 @@ public abstract class HandledScreenMixin<T extends ScreenHandler> extends Screen
if (this.client != null && this.client.player != null && this.focusedSlot != null && keyCode != 256 && !this.client.options.inventoryKey.matchesKey(keyCode, scanCode) && Utils.isOnSkyblock()) {
SkyblockerConfig config = SkyblockerConfigManager.get();
//wiki lookup
- if (config.general.wikiLookup.enableWikiLookup && WikiLookup.wikiLookup.matchesKey(keyCode, scanCode)) {
- WikiLookup.openWiki(this.focusedSlot, client.player);
+ if (config.general.wikiLookup.enableWikiLookup) {
+ if (WikiLookup.officialWikiLookup.matchesKey(keyCode, scanCode)) {
+ WikiLookup.openWiki(this.focusedSlot, client.player, true);
+ } else if (WikiLookup.fandomWikiLookup.matchesKey(keyCode, scanCode)) {
+ WikiLookup.openWiki(this.focusedSlot, client.player, false);
+ }
}
//item protection
if (ItemProtection.itemProtection.matchesKey(keyCode, scanCode)) {
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 9ebf72a6..3d77c735 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/WikiLookup.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/WikiLookup.java
@@ -20,30 +20,38 @@ import org.slf4j.LoggerFactory;
import java.util.concurrent.CompletableFuture;
public class WikiLookup {
- private static final Logger LOGGER = LoggerFactory.getLogger(WikiLookup.class);
- public static KeyBinding wikiLookup;
+ private static final Logger LOGGER = LoggerFactory.getLogger(WikiLookup.class);
+ public static KeyBinding officialWikiLookup;
+ public static KeyBinding fandomWikiLookup;
- @Init
- public static void init() {
- wikiLookup = KeyBindingHelper.registerKeyBinding(new KeyBinding(
- "key.wikiLookup",
- InputUtil.Type.KEYSYM,
- GLFW.GLFW_KEY_F4,
- "key.categories.skyblocker"
- ));
- }
+ @Init
+ public static void init() {
+ officialWikiLookup = KeyBindingHelper.registerKeyBinding(new KeyBinding(
+ "key.wikiLookup.official",
+ InputUtil.Type.KEYSYM,
+ GLFW.GLFW_KEY_F4,
+ "key.categories.skyblocker"
+ ));
- public static void openWiki(@NotNull Slot slot, @NotNull PlayerEntity player) {
- WikiLookup.openWiki(slot.getStack(), player);
- }
+ fandomWikiLookup = KeyBindingHelper.registerKeyBinding(new KeyBinding(
+ "key.wikiLookup.fandom",
+ InputUtil.Type.KEYSYM,
+ GLFW.GLFW_KEY_F1,
+ "key.categories.skyblocker"
+ ));
+ }
+
+ public static void openWiki(@NotNull Slot slot, @NotNull PlayerEntity player, boolean useOfficial) {
+ WikiLookup.openWiki(slot.getStack(), player, useOfficial);
+ }
- public static void openWiki(ItemStack stack, PlayerEntity player) {
+ public static void openWiki(ItemStack stack, PlayerEntity player, boolean useOfficial) {
ItemUtils.getItemIdOptional(stack)
- .map(ItemRepository::getWikiLink)
+ .map(neuId -> ItemRepository.getWikiLink(neuId, useOfficial))
.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));
+ }), () -> player.sendMessage(Constants.PREFIX.get().append(useOfficial ? Text.translatable("skyblocker.wikiLookup.noArticleFound.official") : Text.translatable("skyblocker.wikiLookup.noArticleFound.fandom")), 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 b5b0cbc4..f771aa45 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemRepository.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemRepository.java
@@ -1,7 +1,6 @@
package de.hysky.skyblocker.skyblock.itemlist;
import de.hysky.skyblocker.annotations.Init;
-import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.utils.ItemUtils;
import de.hysky.skyblocker.utils.NEURepoManager;
import io.github.moulberry.repo.data.NEUCraftingRecipe;
@@ -70,7 +69,7 @@ public class ItemRepository {
}
}
- public static String getWikiLink(String neuId) {
+ public static String getWikiLink(String neuId, boolean useOfficial) {
NEUItem item = NEURepoManager.NEU_REPO.getItems().getItemBySkyblockId(neuId);
if (item == null || item.getInfo() == null || item.getInfo().isEmpty()) {
return null;
@@ -79,7 +78,7 @@ public class ItemRepository {
List<String> info = item.getInfo();
String wikiLink0 = info.getFirst();
String wikiLink1 = info.size() > 1 ? info.get(1) : "";
- String wikiDomain = SkyblockerConfigManager.get().general.wikiLookup.officialWiki ? "https://wiki.hypixel.net" : "https://hypixel-skyblock.fandom.com";
+ String wikiDomain = useOfficial ? "https://wiki.hypixel.net" : "https://hypixel-skyblock.fandom.com";
if (wikiLink0.startsWith(wikiDomain)) {
return wikiLink0;
} else if (wikiLink1.startsWith(wikiDomain)) {
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockCraftingRecipeResults.java b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockCraftingRecipeResults.java
index 834440a5..367bcd31 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockCraftingRecipeResults.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockCraftingRecipeResults.java
@@ -180,7 +180,7 @@ public class SkyblockCraftingRecipeResults implements RecipeAreaDisplay {
/**
* Handles updating the search results when a character is typed into the search bar,
- *
+ *
* @implNote The {@code query} is always passed as lower case.
*/
@Override
@@ -316,14 +316,17 @@ public class SkyblockCraftingRecipeResults implements RecipeAreaDisplay {
@Override
public boolean keyPressed(double mouseX, double mouseY, int keyCode, int scanCode, int modifiers) {
- if (SkyblockerConfigManager.get().general.wikiLookup.enableWikiLookup
- && WikiLookup.wikiLookup.matchesKey(keyCode, scanCode))
- return this.resultButtons.stream()
- .filter(button -> button.isMouseOver(mouseX, mouseY))
- .findFirst().map(button -> {
- WikiLookup.openWiki(button.getDisplayStack(), client.player);
- return true;
- }).orElse(false);
+ if (SkyblockerConfigManager.get().general.wikiLookup.enableWikiLookup) {
+ boolean officialWikiLookup = WikiLookup.officialWikiLookup.matchesKey(keyCode, scanCode);
+ if (officialWikiLookup || WikiLookup.fandomWikiLookup.matchesKey(keyCode, scanCode)) {
+ return this.resultButtons.stream()
+ .filter(button -> button.isMouseOver(mouseX, mouseY))
+ .findFirst().map(button -> {
+ WikiLookup.openWiki(button.getDisplayStack(), client.player, officialWikiLookup);
+ return true;
+ }).orElse(false);
+ }
+ }
return false;
}
}