aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/features/slayer
diff options
context:
space:
mode:
authorhannibal2 <24389977+hannibal00212@users.noreply.github.com>2023-09-28 11:24:39 +0200
committerhannibal2 <24389977+hannibal00212@users.noreply.github.com>2023-09-28 11:24:39 +0200
commit2ea43c913a9d4d28e7d12918ac62c5ffde0ac311 (patch)
tree0b0495b32803b78ccd6b8333b3613c91a1dd0356 /src/main/java/at/hannibal2/skyhanni/features/slayer
parent5b365290131bd4644dca1ea61761d7f25f70a47d (diff)
downloadskyhanni-2ea43c913a9d4d28e7d12918ac62c5ffde0ac311.tar.gz
skyhanni-2ea43c913a9d4d28e7d12918ac62c5ffde0ac311.tar.bz2
skyhanni-2ea43c913a9d4d28e7d12918ac62c5ffde0ac311.zip
Ignoring non-slayer drops in slayer profit tracker.
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/slayer')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/slayer/SlayerItemProfitTracker.kt20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/slayer/SlayerItemProfitTracker.kt b/src/main/java/at/hannibal2/skyhanni/features/slayer/SlayerItemProfitTracker.kt
index e93210b10..00b0f751d 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/slayer/SlayerItemProfitTracker.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/slayer/SlayerItemProfitTracker.kt
@@ -9,6 +9,7 @@ import at.hannibal2.skyhanni.events.GuiRenderEvent
import at.hannibal2.skyhanni.events.PacketEvent
import at.hannibal2.skyhanni.events.PurseChangeCause
import at.hannibal2.skyhanni.events.PurseChangeEvent
+import at.hannibal2.skyhanni.events.RepositoryReloadEvent
import at.hannibal2.skyhanni.events.SlayerChangeEvent
import at.hannibal2.skyhanni.events.SlayerQuestCompleteEvent
import at.hannibal2.skyhanni.features.bazaar.BazaarApi.Companion.getBazaarData
@@ -20,6 +21,7 @@ import at.hannibal2.skyhanni.utils.LorenzLogger
import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.LorenzUtils.addAsSingletonList
import at.hannibal2.skyhanni.utils.LorenzUtils.addSelector
+import at.hannibal2.skyhanni.utils.LorenzUtils.get
import at.hannibal2.skyhanni.utils.LorenzUtils.sortedDesc
import at.hannibal2.skyhanni.utils.NEUInternalName
import at.hannibal2.skyhanni.utils.NEUItems.getNpcPrice
@@ -29,6 +31,7 @@ import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
import at.hannibal2.skyhanni.utils.RenderUtils.renderStringsAndItems
import at.hannibal2.skyhanni.utils.StringUtils
import at.hannibal2.skyhanni.utils.StringUtils.removeColor
+import at.hannibal2.skyhanni.utils.jsonobjects.SlayerProfitTrackerItemsJson
import at.hannibal2.skyhanni.utils.renderables.Renderable
import com.google.common.cache.CacheBuilder
import net.minecraft.client.Minecraft
@@ -60,6 +63,14 @@ object SlayerItemProfitTracker {
update()
}
+ private var allowedItems = mapOf<String, List<NEUInternalName>>()
+
+ @SubscribeEvent
+ fun onRepoReload(event: RepositoryReloadEvent) {
+ val items = event.getConstant<SlayerProfitTrackerItemsJson>("SlayerProfitTrackerItems") ?: return
+ allowedItems = items.slayers
+ }
+
@SubscribeEvent
fun onPurseChange(event: PurseChangeEvent) {
if (!isEnabled()) return
@@ -147,6 +158,10 @@ object SlayerItemProfitTracker {
val name = itemStack.name ?: return
if (SlayerAPI.ignoreSlayerDrop(name)) return
val internalName = itemStack.getInternalNameOrNull() ?: return
+ if (!isAllowedItem(internalName)) {
+ LorenzUtils.debug("Ignored non-slayer item pickup: '$internalName' '$itemLogCategory'")
+ return
+ }
val (itemName, price) = SlayerAPI.getItemNameAndPrice(itemStack)
addItemPickup(internalName, itemStack.stackSize)
@@ -163,6 +178,11 @@ object SlayerItemProfitTracker {
}
}
+ private fun isAllowedItem(internalName: NEUInternalName): Boolean {
+ val allowedList = allowedItems.get { itemLogCategory.startsWith(it) } ?: return false
+ return internalName in allowedList
+ }
+
fun update() {
display = drawDisplay()
}