From 8d7eb45435c328792638cba18eed498e139706a8 Mon Sep 17 00:00:00 2001 From: Obsidian <108832807+Obsidianninja11@users.noreply.github.com> Date: Mon, 26 Feb 2024 06:23:35 -0900 Subject: Geyser fixes + fishingAPI #1054 --- .../hannibal2/skyhanni/features/fishing/FishingAPI.kt | 17 +++++++++++++++++ .../skyhanni/features/fishing/trophy/GeyserFishing.kt | 9 ++++++++- .../skyhanni/features/nether/SulphurSkitterBox.kt | 17 +---------------- 3 files changed, 26 insertions(+), 17 deletions(-) (limited to 'src/main/java/at/hannibal2/skyhanni/features') 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 e3ac0c219..ae58bec30 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/fishing/FishingAPI.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/fishing/FishingAPI.kt @@ -1,7 +1,9 @@ package at.hannibal2.skyhanni.features.fishing +import at.hannibal2.skyhanni.data.jsonobjects.repo.ItemsJson import at.hannibal2.skyhanni.events.FishingBobberCastEvent import at.hannibal2.skyhanni.events.ItemInHandChangeEvent +import at.hannibal2.skyhanni.events.RepositoryReloadEvent 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 @@ -29,6 +31,11 @@ object FishingAPI { var lastCastTime = SimpleTimeMark.farPast() var holdingRod = false + var holdingLavaRod = false + var holdingWaterRod = false + + private var lavaRods = listOf() + private var waterRods = listOf() @SubscribeEvent fun onJoinWorld(event: EntityJoinWorldEvent) { @@ -52,6 +59,16 @@ 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 + } + + + @SubscribeEvent + fun onRepoReload(event: RepositoryReloadEvent) { + val data = event.getConstant("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.") } fun isLavaRod() = InventoryUtils.getItemInHand()?.getLore()?.any { it.contains("Lava Rod") } ?: false 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 da46ec7b2..e4ffe0053 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 @@ -7,7 +7,9 @@ import at.hannibal2.skyhanni.events.LorenzRenderWorldEvent import at.hannibal2.skyhanni.events.LorenzTickEvent import at.hannibal2.skyhanni.events.LorenzWorldChangeEvent import at.hannibal2.skyhanni.events.ReceiveParticleEvent +import at.hannibal2.skyhanni.features.fishing.FishingAPI import at.hannibal2.skyhanni.utils.LocationUtils.distanceTo +import at.hannibal2.skyhanni.utils.LocationUtils.distanceToPlayerIgnoreY import at.hannibal2.skyhanni.utils.LorenzUtils import at.hannibal2.skyhanni.utils.LorenzUtils.isInIsland import at.hannibal2.skyhanni.utils.LorenzVec @@ -69,7 +71,12 @@ class GeyserFishing { @SubscribeEvent fun onRenderWorld(event: LorenzRenderWorldEvent) { - if (!config.drawBox || !IslandType.CRIMSON_ISLE.isInIsland()) return + if (!config.drawBox) return + if (!IslandType.CRIMSON_ISLE.isInIsland()) return + if (config.onlyWithRod && !FishingAPI.holdingLavaRod) return + val geyser = geyser ?: return + if (geyser.distanceToPlayerIgnoreY() > 96) return + val geyserBox = geyserBox ?: return val color = Color(SpecialColour.specialToChromaRGB(config.boxColor), true) event.drawFilledBoundingBox_nea(geyserBox, color) diff --git a/src/main/java/at/hannibal2/skyhanni/features/nether/SulphurSkitterBox.kt b/src/main/java/at/hannibal2/skyhanni/features/nether/SulphurSkitterBox.kt index 5db95b246..7b73d1fd4 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/nether/SulphurSkitterBox.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/nether/SulphurSkitterBox.kt @@ -4,18 +4,14 @@ import at.hannibal2.skyhanni.SkyHanniMod import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.config.features.crimsonisle.SulphurSkitterBoxConfig import at.hannibal2.skyhanni.data.IslandType -import at.hannibal2.skyhanni.data.jsonobjects.repo.ItemsJson import at.hannibal2.skyhanni.events.LorenzRenderWorldEvent import at.hannibal2.skyhanni.events.LorenzTickEvent import at.hannibal2.skyhanni.events.LorenzWorldChangeEvent -import at.hannibal2.skyhanni.events.RepositoryReloadEvent import at.hannibal2.skyhanni.features.fishing.FishingAPI import at.hannibal2.skyhanni.utils.BlockUtils.getBlockAt -import at.hannibal2.skyhanni.utils.InventoryUtils import at.hannibal2.skyhanni.utils.LocationUtils import at.hannibal2.skyhanni.utils.LocationUtils.distanceToPlayer import at.hannibal2.skyhanni.utils.LorenzUtils.isInIsland -import at.hannibal2.skyhanni.utils.NEUInternalName import at.hannibal2.skyhanni.utils.RenderUtils import at.hannibal2.skyhanni.utils.RenderUtils.expandBlock import at.hannibal2.skyhanni.utils.SpecialColour @@ -29,7 +25,6 @@ import java.awt.Color class SulphurSkitterBox { private val config get() = SkyHanniMod.feature.fishing.trophyFishing.sulphurSkitterBox - private var rods = listOf() private var spongeBlocks = listOf() private var closestBlock: BlockPos? = null private val radius = 8 @@ -102,18 +97,8 @@ class SulphurSkitterBox { } } - @SubscribeEvent - fun onRepoReload(event: RepositoryReloadEvent) { - val data = event.getConstant("Items") - rods = data.lava_fishing_rods ?: emptyList() - - if (rods.isEmpty()) { - error("§cConstants Items is missing data, please use /shupdaterepo") - } - } - fun isEnabled() = - IslandType.CRIMSON_ISLE.isInIsland() && config.enabled && (!config.onlyWithRods || InventoryUtils.itemInHandId in rods) + IslandType.CRIMSON_ISLE.isInIsland() && config.enabled && (!config.onlyWithRods || FishingAPI.holdingLavaRod) @SubscribeEvent -- cgit