diff options
author | NetheriteMiner <88792142+NetheriteMiner@users.noreply.github.com> | 2023-05-06 15:31:25 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-06 21:31:25 +0200 |
commit | fec41716f40ed43791fd37071b06e8516d207807 (patch) | |
tree | d59e894f8a106e4391a745fff48d256dfd18c043 /src/main/java/at/hannibal2/skyhanni/features/misc | |
parent | d462d17308d2ac2754f73a64b61ac343677e0f30 (diff) | |
download | skyhanni-fec41716f40ed43791fd37071b06e8516d207807.tar.gz skyhanni-fec41716f40ed43791fd37071b06e8516d207807.tar.bz2 skyhanni-fec41716f40ed43791fd37071b06e8516d207807.zip |
Add Auto, Pet, and Crop Milestones to RPC. (#83)
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/misc')
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/misc/discordrpc/DiscordRPCManager.kt | 2 | ||||
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/misc/discordrpc/DiscordStatus.kt | 43 |
2 files changed, 43 insertions, 2 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/misc/discordrpc/DiscordRPCManager.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/discordrpc/DiscordRPCManager.kt index 402a643d1..21539451f 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/misc/discordrpc/DiscordRPCManager.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/misc/discordrpc/DiscordRPCManager.kt @@ -51,7 +51,7 @@ class DiscordRPCManager : IPCListener { secondLine = getStatusByConfigId(config.secondLine.get()) startTimestamp = System.currentTimeMillis() client = IPCClient(applicationID) - client?.setListener(this@DiscordRPCManager) // why must kotlin be this way + client?.setListener(this@DiscordRPCManager) try { client?.connect() diff --git a/src/main/java/at/hannibal2/skyhanni/features/misc/discordrpc/DiscordStatus.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/discordrpc/DiscordStatus.kt index 93c05ee32..f76ea9dc4 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/misc/discordrpc/DiscordStatus.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/misc/discordrpc/DiscordStatus.kt @@ -4,9 +4,14 @@ package at.hannibal2.skyhanni.features.misc.discordrpc import at.hannibal2.skyhanni.SkyHanniMod import at.hannibal2.skyhanni.data.ActionBarStatsData +import at.hannibal2.skyhanni.data.GardenCropMilestones.Companion.getCounter +import at.hannibal2.skyhanni.data.GardenCropMilestones.Companion.getTierForCrops +import at.hannibal2.skyhanni.data.GardenCropMilestones.Companion.progressToNextLevel import at.hannibal2.skyhanni.data.HypixelData import at.hannibal2.skyhanni.data.ScoreboardData +import at.hannibal2.skyhanni.features.garden.GardenAPI.getCropType import at.hannibal2.skyhanni.utils.LorenzUtils +import at.hannibal2.skyhanni.utils.LorenzUtils.colorCodeToRarity import at.hannibal2.skyhanni.utils.StringUtils.firstLetterUppercase import at.hannibal2.skyhanni.utils.StringUtils.removeColor import io.github.moulberry.notenoughupdates.util.SkyBlockTime @@ -14,7 +19,6 @@ import java.util.function.Supplier import java.util.regex.Pattern enum class DiscordStatus(private val displayMessageSupplier: Supplier<String>?) { - // implements "ButtonSelect:SelectItem". no idea how to translate that into skyhanni NONE(null), @@ -137,6 +141,43 @@ enum class DiscordStatus(private val displayMessageSupplier: Supplier<String>?) CUSTOM({ SkyHanniMod.feature.misc.discordRPC.customText.get() // custom field in the config + }), + + AUTO({ + val slayerResult = SLAYER.displayMessageSupplier!!.get() + val milestoneResult = try { + CROP_MILESTONES.displayMessageSupplier!!.get() + } catch (e: Exception) { + "Unable to get milestone" + } + if (slayerResult != "Planning to do a slayer quest") slayerResult + else if (milestoneResult != "Unable to get milestone" && milestoneResult != "Unknown Item" && milestoneResult != "") milestoneResult + else { + val statusNoAuto = DiscordStatus.values().toMutableList() + statusNoAuto.remove(AUTO) + statusNoAuto[SkyHanniMod.feature.misc.discordRPC.auto.get()].getDisplayString() + } + }), + + CROP_MILESTONES({ + val item = net.minecraft.client.Minecraft.getMinecraft().thePlayer.heldItem + val crop = item.getCropType() + val cropCounter = crop?.getCounter() + val tier = cropCounter?.let { getTierForCrops(it) } + + val progress = tier?.let { + LorenzUtils.formatPercentage(crop.progressToNextLevel()) + } ?: 100 // percentage to next milestone + + tier?.let { "${crop.cropName}: Milestone $it ($progress)" } ?: "" + }), + + PETS({ + val pet = SkyHanniMod.feature.hidden.currentPet + val colorCode = pet.substring(1..2).first() + val petName = pet.substring(2) + + "${colorCodeToRarity(colorCode)} $petName" }) ; |