@@ -30,6 +30,7 @@ import gg.skytils.skytilsmod.utils.graphics.SmartFontRenderer
3030import gg.skytils.skytilsmod.utils.graphics.colors.CommonColors
3131import net.minecraftforge.client.event.ClientChatReceivedEvent
3232import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
33+ import java.util.UUID
3334
3435object TrophyFish {
3536 private val trophyFish = mutableMapOf<String , Fish >()
@@ -40,11 +41,15 @@ object TrophyFish {
4041 Skytils .guiManager.registerElement(TrophyFishDisplay ())
4142 }
4243
43- fun loadFromApi () {
44+ suspend fun loadFromApi () {
4445 trophyFish.clear()
45- val trophyFishData = API .getSelectedSkyblockProfileSync(UPlayer .getUUID())?.members?.get(UPlayer .getUUID().nonDashedString())?.trophy_fish
46- trophyFishData?.fish_count?.forEach { (fish, data) ->
47- trophyFish[fish] = Fish (data.bronze, data.silver, data.gold, data.diamond)
46+ trophyFish.putAll(getTrophyFishData(UPlayer .getUUID()) ? : return )
47+ }
48+
49+ suspend fun getTrophyFishData (uuid : UUID ): Map <String , Fish >? {
50+ val trophyFishData = API .getSelectedSkyblockProfile(uuid)?.members?.get(uuid.nonDashedString())?.trophy_fish
51+ return trophyFishData?.fish_count?.entries?.associate { (fish, data) ->
52+ fish to Fish (data.bronze, data.silver, data.gold, data.diamond)
4853 }
4954 }
5055
@@ -70,8 +75,11 @@ object TrophyFish {
7075 }
7176 }
7277
73- fun generateTrophyFishList (total : Boolean = false) =
74- trophyFish.entries.sortedBy { (fish, _) -> TrophyFish .entries.indexOfFirst { it.name == fish } }.mapNotNull { (fish, data) ->
78+ fun generateLocalTrophyFishList (total : Boolean = false) =
79+ generateTrophyFishList(trophyFish, total)
80+
81+ fun generateTrophyFishList (data : Map <String , Fish >, total : Boolean = false) =
82+ data.entries.sortedBy { (fish, _) -> TrophyFish .entries.indexOfFirst { it.name == fish } }.mapNotNull { (fish, data) ->
7583 val name = TrophyFish .entries.find { it.name == fish }?.formattedName ? : return @mapNotNull null
7684 name + (if (total) " ${ChatColor .DARK_AQUA } [${ChatColor .LIGHT_PURPLE }${data.total}${ChatColor .DARK_AQUA } ] " else " ${ChatColor .DARK_AQUA } » " ) +
7785 " ${ChatColor .DARK_GRAY }${data.bronze}${ChatColor .DARK_AQUA } -" +
@@ -113,7 +121,7 @@ object TrophyFish {
113121 val alignment = if (scaleX > sr.scaledWidth / 2f ) SmartFontRenderer .TextAlignment .RIGHT_LEFT else SmartFontRenderer .TextAlignment .LEFT_RIGHT
114122 override fun render () {
115123 if (! toggled || ! Utils .inSkyblock || SBInfo .mode != SkyblockIsland .CrimsonIsle .mode) return
116- generateTrophyFishList (Config .showTrophyFishTotals).forEachIndexed { idx, str ->
124+ generateLocalTrophyFishList (Config .showTrophyFishTotals).forEachIndexed { idx, str ->
117125 fr.drawString(
118126 str,
119127 0f ,
0 commit comments