aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/features
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/fishing/FishingAPI.kt23
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/fishing/SharkFishCounter.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/fishing/trophy/GeyserFishing.kt5
3 files changed, 18 insertions, 12 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/fishing/FishingAPI.kt b/src/main/java/at/hannibal2/skyhanni/features/fishing/FishingAPI.kt
index 2403e430f..239e2a9aa 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/fishing/FishingAPI.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/fishing/FishingAPI.kt
@@ -11,10 +11,9 @@ import at.hannibal2.skyhanni.features.fishing.trophy.TrophyFishManager
import at.hannibal2.skyhanni.features.fishing.trophy.TrophyFishManager.getFilletValue
import at.hannibal2.skyhanni.features.fishing.trophy.TrophyRarity
import at.hannibal2.skyhanni.utils.BlockUtils.getBlockAt
-import at.hannibal2.skyhanni.utils.InventoryUtils
import at.hannibal2.skyhanni.utils.ItemCategory
+import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName
import at.hannibal2.skyhanni.utils.ItemUtils.getItemCategoryOrNull
-import at.hannibal2.skyhanni.utils.ItemUtils.getLore
import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.LorenzVec
import at.hannibal2.skyhanni.utils.NEUInternalName
@@ -84,8 +83,12 @@ object FishingAPI {
}
}
- private fun NEUInternalName.isFishingRod() = contains("ROD")
- fun ItemStack.isFishingRod() = getItemCategoryOrNull() == ItemCategory.FISHING_ROD || getItemCategoryOrNull() == ItemCategory.FISHING_WEAPON
+ fun ItemStack.isFishingRod() = getInternalName().isFishingRod()
+ fun NEUInternalName.isFishingRod() = isLavaRod() || isWaterRod()
+
+ fun NEUInternalName?.isLavaRod() = this in lavaRods
+
+ fun NEUInternalName?.isWaterRod() = this in waterRods
fun ItemStack.isBait(): Boolean = stackSize == 1 && getItemCategoryOrNull() == ItemCategory.FISHING_BAIT
@@ -93,20 +96,18 @@ object FishingAPI {
fun onItemInHandChange(event: ItemInHandChangeEvent) {
// TODO correct rod type per island water/lava
holdingRod = event.newItem.isFishingRod()
- holdingLavaRod = event.newItem in lavaRods
- holdingWaterRod = event.newItem in waterRods
+ holdingLavaRod = event.newItem.isLavaRod()
+ holdingWaterRod = event.newItem.isWaterRod()
}
@SubscribeEvent
fun onRepoReload(event: RepositoryReloadEvent) {
val data = event.getConstant<ItemsJson>("Items")
- lavaRods = data.lava_fishing_rods ?: error("§clava_fishing_rods is missing from repo.")
- waterRods = data.water_fishing_rods ?: error("§cwater_fishing_rods is missing from repo.")
+ lavaRods = data.lava_fishing_rods
+ waterRods = data.water_fishing_rods
}
- fun isLavaRod() = InventoryUtils.getItemInHand()?.getLore()?.any { it.contains("Lava Rod") } ?: false
-
- private fun getAllowedBlocks() = if (isLavaRod()) lavaBlocks else waterBlocks
+ private fun getAllowedBlocks() = if (holdingLavaRod) lavaBlocks else waterBlocks
fun getFilletPerTrophy(internalName: NEUInternalName): Int {
val internal = internalName.asString()
diff --git a/src/main/java/at/hannibal2/skyhanni/features/fishing/SharkFishCounter.kt b/src/main/java/at/hannibal2/skyhanni/features/fishing/SharkFishCounter.kt
index 8f201648b..f1c876049 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/fishing/SharkFishCounter.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/fishing/SharkFishCounter.kt
@@ -73,7 +73,7 @@ class SharkFishCounter {
else -> "How???"
}
- private fun isWaterFishingRod() = FishingAPI.isFishing() && !FishingAPI.isLavaRod()
+ private fun isWaterFishingRod() = FishingAPI.isFishing() && !FishingAPI.holdingLavaRod
@SubscribeEvent
fun onRenderOverlay(event: GuiRenderEvent.GuiOverlayRenderEvent) {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/fishing/trophy/GeyserFishing.kt b/src/main/java/at/hannibal2/skyhanni/features/fishing/trophy/GeyserFishing.kt
index f17ec4587..aa2920742 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/fishing/trophy/GeyserFishing.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/fishing/trophy/GeyserFishing.kt
@@ -60,6 +60,11 @@ class GeyserFishing {
val geyser = geyser ?: return
if (geyser.distanceToPlayerIgnoreY() > 96) return
+ if (!config.drawBox) return
+ if (!IslandType.CRIMSON_ISLE.isInIsland()) return
+ if (config.onlyWithRod && !FishingAPI.holdingLavaRod) return
+ if (geyser.distanceToPlayerIgnoreY() > 96) return
+
val geyserBox = geyserBox ?: return
val color = Color(SpecialColour.specialToChromaRGB(config.boxColor), true)
event.drawFilledBoundingBox_nea(geyserBox, color)