summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/features/misc
diff options
context:
space:
mode:
authorhannibal2 <24389977+hannibal00212@users.noreply.github.com>2023-10-28 19:01:55 +0200
committerhannibal2 <24389977+hannibal00212@users.noreply.github.com>2023-10-28 19:01:55 +0200
commit9990094370612b8523c8f2622399d01c5697c0a7 (patch)
treec922d678b0f3a489fb113be6435b8c35b0092666 /src/main/java/at/hannibal2/skyhanni/features/misc
parent155af1305a5b65d0aac93e214ba6bead3a4d4e72 (diff)
downloadskyhanni-9990094370612b8523c8f2622399d01c5697c0a7.tar.gz
skyhanni-9990094370612b8523c8f2622399d01c5697c0a7.tar.bz2
skyhanni-9990094370612b8523c8f2622399d01c5697c0a7.zip
changed config toggle to enabled, changed hotkey logic to only trigger once, reformat code and code cleanup
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/misc')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/misc/FandomWikiFromMenus.kt47
1 files changed, 31 insertions, 16 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/misc/FandomWikiFromMenus.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/FandomWikiFromMenus.kt
index d2c1ab4f3..44d4b94ed 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/misc/FandomWikiFromMenus.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/misc/FandomWikiFromMenus.kt
@@ -2,7 +2,7 @@ package at.hannibal2.skyhanni.features.misc
import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator
-import at.hannibal2.skyhanni.events.*
+import at.hannibal2.skyhanni.features.commands.WikiManager
import at.hannibal2.skyhanni.utils.InventoryUtils
import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName
import at.hannibal2.skyhanni.utils.ItemUtils.getLore
@@ -18,8 +18,6 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
class FandomWikiFromMenus {
private val config get() = SkyHanniMod.feature.commands.fandomWiki
- private val urlPrefix = "https://hypixel-skyblock.fandom.com/wiki/"
- private val urlSearchPrefix = "${urlPrefix}Special:Search?query="
@SubscribeEvent
fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent) {
@@ -34,33 +32,50 @@ class FandomWikiFromMenus {
if (chestName.isEmpty()) return
- val itemClickedStack = event.slot.stack
+ val itemClickedStack = event.slot.stack ?: return
val itemClickedName = itemClickedStack.displayName
val itemInHand = InventoryUtils.getItemInHand() ?: return
val itemInHandName = itemInHand.nameWithEnchantment ?: return
- val internalName = itemInHand.getInternalName().asString() ?: return
- var wikiDisplayName = ""
- var wikiInternalName = ""
+ val wikiDisplayName: String
+ val wikiInternalName: String
- if ((itemInHandName == "") || (event.slotId == 11 && itemClickedName.contains("Wiki Command") && chestName.contains("Wiki"))) {
+ val inWikiInventory = // TODO better name for this inventory
+ event.slotId == 11 && itemClickedName.contains("Wiki Command") && chestName.contains("Wiki")
+ if ((itemInHandName == "") || inWikiInventory) {
LorenzUtils.clickableChat("§e[SkyHanni] Click here to visit the Hypixel Skyblock Fandom Wiki!", "wiki")
return
- } else if (event.slotId == 15 && itemClickedName.contains("Wikithis Command") && chestName.contains("Wiki")) {
+ }
+
+ val inOtherWikiInventory = // TODO better name for this inventory
+ event.slotId == 15 && itemClickedName.contains("Wikithis Command") && chestName.contains("Wiki")
+ if (inOtherWikiInventory) {
wikiDisplayName = itemInHandName
+ val internalName = itemInHand.getInternalName().asString()
wikiInternalName = internalName
- } else if ((itemClickedStack.getLore().anyContains("Wiki") || itemClickedStack.getLore().anyContains("wiki")) && !(itemClickedStack.getLore().anyContains("wikipedia"))) { //.lowercase() to match "Wiki!" and ".*wiki.*" lore lines in one fell swoop
- wikiDisplayName = itemClickedName.removeColor().replace("✔ ", "").replace("✖ ", "")
- wikiInternalName = itemClickedName.removeColor().replace("✔ ", "").replace("✖ ", "")
- } else return
+ } else {
+ //.lowercase() to match "Wiki!" and ".*wiki.*" lore lines in one fell swoop
+ val inThirdWikiInventory = // TODO better name for this inventory
+ (itemClickedStack.getLore().anyContains("Wiki") || itemClickedStack.getLore().anyContains("wiki"))
+ && !itemClickedStack.getLore().anyContains("wikipedia")
+ if (inThirdWikiInventory) {
+ wikiDisplayName = itemClickedName.removeColor().replace("✔ ", "").replace("✖ ", "")
+ wikiInternalName = wikiDisplayName
+ } else return
+ }
+
if (!config.skipWikiChat) {
- LorenzUtils.clickableChat("§e[SkyHanni] Click here to search for $wikiDisplayName §eon the Hypixel Skyblock Fandom Wiki!", "wiki $wikiInternalName")
+ LorenzUtils.clickableChat(
+ "§e[SkyHanni] Click here to search for $wikiDisplayName §eon the Hypixel Skyblock Fandom Wiki!",
+ "wiki $wikiInternalName"
+ )
} else {
LorenzUtils.chat("§e[SkyHanni] Searching the Fandom Wiki for §a$wikiDisplayName")
- val wikiUrlCustom = "$urlSearchPrefix$wikiInternalName&scope=internal"
+ val wikiUrlCustom = "${WikiManager.urlSearchPrefix}$wikiInternalName&scope=internal"
OSUtils.openBrowser(wikiUrlCustom.replace(' ', '+'))
}
event.isCanceled = true
}
- private fun isEnabled() = config.useFandomWiki
+
+ private fun isEnabled() = config.enabled
}