From 1374af98253decb917f6c1605b9a45ce822adc91 Mon Sep 17 00:00:00 2001 From: hannibal2 <24389977+hannibal00212@users.noreply.github.com> Date: Tue, 7 Nov 2023 23:16:36 +0100 Subject: added support for different current sessions per profile. --- .../java/at/hannibal2/skyhanni/utils/tracker/SkyHanniTracker.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/main/java/at/hannibal2/skyhanni/utils/tracker') diff --git a/src/main/java/at/hannibal2/skyhanni/utils/tracker/SkyHanniTracker.kt b/src/main/java/at/hannibal2/skyhanni/utils/tracker/SkyHanniTracker.kt index 6d0fcedb6..8d5b723df 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/tracker/SkyHanniTracker.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/tracker/SkyHanniTracker.kt @@ -13,20 +13,24 @@ import net.minecraft.client.gui.inventory.GuiInventory class SkyHanniTracker( private val name: String, - private val currentSessionData: Data, + private val createNewSession: () -> Data, private val getStorage: (Storage.ProfileSpecific) -> Data, private val update: () -> Unit, ) { private var inventoryOpen = false private var displayMode = DisplayMode.TOTAL + private val currentSessions = mutableMapOf() fun isInventoryOpen() = inventoryOpen private fun getSharedTracker(): SharedTracker? { val profileSpecific = ProfileStorageData.profileSpecific ?: return null - return SharedTracker(getStorage(profileSpecific), currentSessionData) + return SharedTracker(getStorage(profileSpecific), getCurrentSession(profileSpecific)) } + private fun getCurrentSession(profileSpecific: Storage.ProfileSpecific) = + currentSessions.getOrPut(profileSpecific) { createNewSession() } + fun addSessionResetButton(list: MutableList>) { if (!inventoryOpen || displayMode != DisplayMode.SESSION) return -- cgit