From c8f81f0fc19ffe0778ea3d0ebb7e34d7f7ac76da Mon Sep 17 00:00:00 2001 From: hannibal2 <24389977+hannibal00212@users.noreply.github.com> Date: Thu, 13 Apr 2023 06:42:24 +0200 Subject: hopefully fixed finnegan perk detection and calculation logic --- .../java/at/hannibal2/skyhanni/data/MayorElectionData.kt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'src/main/java/at/hannibal2/skyhanni/data') diff --git a/src/main/java/at/hannibal2/skyhanni/data/MayorElectionData.kt b/src/main/java/at/hannibal2/skyhanni/data/MayorElectionData.kt index 634958217..70f30a021 100644 --- a/src/main/java/at/hannibal2/skyhanni/data/MayorElectionData.kt +++ b/src/main/java/at/hannibal2/skyhanni/data/MayorElectionData.kt @@ -53,9 +53,14 @@ class MayorElectionData { SkyHanniMod.coroutineScope.launch { val url = "https://api.hypixel.net/resources/skyblock/election" val jsonObject = withContext(Dispatchers.IO) { APIUtil.getJSONResponse(url) } - rawMayorData = gson.fromJson(jsonObject, MayorData::class.java).also { - candidates = mapOf(it.mayor.election.getPairs(), it.current.getPairs()) + rawMayorData = gson.fromJson(jsonObject, MayorData::class.java) + val data = rawMayorData ?: return@launch + val map = mutableMapOf() + map put data.mayor.election.getPairs() + data.current?.let { + map put data.current.getPairs() } + candidates = map } } @@ -79,4 +84,8 @@ class MayorElectionData { private fun MayorData.Election.getPairs() = year + 1 to candidates.bestCandidate() private fun List.bestCandidate() = maxBy { it.votes } + + private infix fun MutableMap.put(pairs: Pair) { + this[pairs.first] = pairs.second + } } \ No newline at end of file -- cgit