Skip to content

Commit c5f1556

Browse files
feat: add minister data to MayorInfo
1 parent 8e5c21f commit c5f1556

File tree

5 files changed

+20
-10
lines changed

5 files changed

+20
-10
lines changed

src/main/kotlin/gg/skytils/skytilsmod/features/impl/dungeons/ScoreCalculation.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -428,7 +428,7 @@ object ScoreCalculation {
428428
init {
429429
tickTimer(5, repeats = true) {
430430
isPaul.set(
431-
(MayorInfo.currentMayor == "Paul" && MayorInfo.mayorPerks.contains("EZPZ")) || MayorInfo.jerryMayor?.name == "Paul"
431+
(MayorInfo.allPerks.contains("EZPZ")) || MayorInfo.jerryMayor?.name == "Paul"
432432
)
433433
}
434434
}

src/main/kotlin/gg/skytils/skytilsmod/features/impl/handlers/MayorInfo.kt

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,11 @@ import kotlinx.coroutines.launch
3333
import kotlinx.serialization.Serializable
3434
import kotlinx.serialization.json.JsonObject
3535
import kotlinx.serialization.json.decodeFromJsonElement
36-
import net.minecraft.event.HoverEvent
37-
import net.minecraft.init.Items
3836
import net.minecraft.inventory.ContainerChest
3937
import net.minecraftforge.client.event.ClientChatReceivedEvent
4038
import net.minecraftforge.fml.common.eventhandler.EventPriority
4139
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
4240
import java.io.IOException
43-
import java.net.URLEncoder
4441
import java.util.*
4542
import kotlin.math.abs
4643
import kotlin.math.round
@@ -53,6 +50,10 @@ object MayorInfo {
5350

5451
var currentMayor: String? = null
5552
var mayorPerks = HashSet<String>()
53+
var currentMinister: String? = null
54+
var ministerPerks = HashSet<String>()
55+
var allPerks = HashSet<String>()
56+
5657
var jerryMayor: Mayor? = null
5758
var newJerryPerks = 0L
5859
private var lastCheckedElectionOver = 0L
@@ -133,13 +134,22 @@ object MayorInfo {
133134
}
134135

135136
fun fetchMayorData() = Skytils.IO.launch {
136-
val res = json.decodeFromJsonElement<Mayor>(client.get("https://api.hypixel.net/resources/skyblock/election").body<JsonObject>()["mayor"]!!)
137+
val res = client.get("https://api.hypixel.net/resources/skyblock/election").body<JsonObject>()
138+
val mayorObj = res["mayor"] as JsonObject
139+
val newMayor = json.decodeFromJsonElement<Mayor>(mayorObj)
140+
val newMinister = mayorObj["minister"]?.let { json.decodeFromJsonElement<Mayor>(it) }
137141
tickTimer(1) {
138-
currentMayor = res.name
142+
currentMayor = newMayor.name
143+
currentMinister = newMinister?.name
139144
lastFetchedMayorData = System.currentTimeMillis()
140145
if (currentMayor != "Jerry") jerryMayor = null
141146
mayorPerks.clear()
142-
mayorPerks.addAll(res.perks.map { it.name })
147+
mayorPerks.addAll(newMayor.perks.map { it.name })
148+
ministerPerks.clear()
149+
if (newMinister != null) ministerPerks.addAll(newMinister.perks.map { it.name })
150+
allPerks.clear()
151+
allPerks.addAll(mayorPerks)
152+
allPerks.addAll(ministerPerks)
143153
}
144154
}
145155

src/main/kotlin/gg/skytils/skytilsmod/features/impl/mining/CHWaypoints.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ object CHWaypoints {
209209
event.entity is EntityOtherPlayerMP &&
210210
event.entity.name == "Team Treasurite" &&
211211
mc.thePlayer.canEntityBeSeen(event.entity) &&
212-
event.entity.baseMaxHealth == if (MayorInfo.mayorPerks.contains("DOUBLE MOBS HP!!!")) 2_000_000.0 else 1_000_000.0
212+
event.entity.baseMaxHealth == if (MayorInfo.allPerks.contains("DOUBLE MOBS HP!!!")) 2_000_000.0 else 1_000_000.0
213213
) {
214214
if (!CrystalHollowsMap.Locations.Corleone.loc.exists()) {
215215
CrystalHollowsMap.Locations.Corleone.apply {

src/main/kotlin/gg/skytils/skytilsmod/features/impl/slayer/SlayerFeatures.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,7 @@ object SlayerFeatures : CoroutineScope {
472472
val entity = event.target as? EntityLivingBase ?: return
473473

474474
if (!hasSlayerText || !Utils.inSkyblock || event.entity != mc.thePlayer || !Skytils.config.useSlayerHitMethod) return
475-
if ((if (MayorInfo.mayorPerks.contains("DOUBLE MOBS HP!!!")) 2 else 1) * floor(entity.baseMaxHealth).toInt() == expectedMaxHp) {
475+
if ((if (MayorInfo.allPerks.contains("DOUBLE MOBS HP!!!")) 2 else 1) * floor(entity.baseMaxHealth).toInt() == expectedMaxHp) {
476476
printDevMessage("A valid entity was attacked", "slayer", "seraph", "seraphHit")
477477
hitMap.compute(entity) { _, int ->
478478
return@compute (int ?: 0).inc()

src/main/kotlin/gg/skytils/skytilsmod/features/impl/slayer/base/Slayer.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ open class Slayer<T : EntityLivingBase>(
4747
get() = entity.javaClass
4848
private val currentTier = SlayerFeatures.getTier(name)
4949
private val expectedHealth =
50-
(if ("DOUBLE MOBS HP!!!" in MayorInfo.mayorPerks) 2 else 1) * (SlayerFeatures.BossHealths[name.substringBefore(
50+
(if ("DOUBLE MOBS HP!!!" in MayorInfo.allPerks) 2 else 1) * (SlayerFeatures.BossHealths[name.substringBefore(
5151
" "
5252
)]?.get(currentTier) ?: 0)
5353

0 commit comments

Comments
 (0)