aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/features
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/misc/discordrpc/DiscordRPCManager.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/misc/discordrpc/DiscordStatus.kt43
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"
})
;