aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/StackingEnchantsJson.kt12
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/misc/discordrpc/DiscordRPCManager.kt10
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/misc/discordrpc/DiscordStatus.kt55
3 files changed, 27 insertions, 50 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/StackingEnchantsJson.kt b/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/StackingEnchantsJson.kt
new file mode 100644
index 000000000..a663f6db8
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/StackingEnchantsJson.kt
@@ -0,0 +1,12 @@
+package at.hannibal2.skyhanni.data.jsonobjects.repo
+
+import com.google.gson.annotations.Expose
+
+data class StackingEnchantsJson(
+ @Expose val enchants: Map<String, StackingEnchantData>
+)
+
+data class StackingEnchantData(
+ @Expose val levels: List<Int>,
+ @Expose val statName: String
+)
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 bc7875822..2fb3e0241 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
@@ -8,10 +8,13 @@ import at.hannibal2.skyhanni.SkyHanniMod.Companion.feature
import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator
import at.hannibal2.skyhanni.config.features.misc.DiscordRPCConfig.LineEntry
import at.hannibal2.skyhanni.config.features.misc.DiscordRPCConfig.PriorityEntry
+import at.hannibal2.skyhanni.data.jsonobjects.repo.StackingEnchantData
+import at.hannibal2.skyhanni.data.jsonobjects.repo.StackingEnchantsJson
import at.hannibal2.skyhanni.events.ConfigLoadEvent
import at.hannibal2.skyhanni.events.LorenzKeyPressEvent
import at.hannibal2.skyhanni.events.LorenzTickEvent
import at.hannibal2.skyhanni.events.LorenzWorldChangeEvent
+import at.hannibal2.skyhanni.events.RepositoryReloadEvent
import at.hannibal2.skyhanni.test.command.ErrorManager
import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.ConditionalUtils
@@ -49,6 +52,8 @@ object DiscordRPCManager : IPCListener {
private val DiscordLocationKey = DiscordLocationKey()
+ var stackingEnchants: Map<String, StackingEnchantData> = emptyMap()
+
fun start(fromCommand: Boolean = false) {
coroutineScope.launch {
try {
@@ -117,6 +122,11 @@ object DiscordRPCManager : IPCListener {
}
}
+ @SubscribeEvent
+ fun onRepoReload(event: RepositoryReloadEvent) {
+ stackingEnchants = event.getConstant<StackingEnchantsJson>("StackingEnchants").enchants
+ }
+
fun updatePresence() {
val location = DiscordStatus.LOCATION.getDisplayString()
val discordIconKey = DiscordLocationKey.getDiscordIconKey(location)
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 af307e32f..de93ad491 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
@@ -40,49 +40,6 @@ val purseRegex = Regex("""(?:Purse|Piggy): ([\d,]+)[\d.]*""")
val motesRegex = Regex("""Motes: ([\d,]+)""")
val bitsRegex = Regex("""Bits: ([\d|,]+)[\d|.]*""")
-val stackingEnchants = mapOf(
- "compact" to mapOf(
- "levels" to listOf(0, 100, 500, 1500, 5000, 15000, 50000, 150000, 500000, 1000000),
- "nbtNum" to "compact_blocks"
- ),
- "cultivating" to mapOf(
- "levels" to listOf(
- 0,
- 1000,
- 5000,
- 25000,
- 100000,
- 300000,
- 1500000,
- 5000000,
- 20000000,
- 100000000
- ), "nbtNum" to "farmed_cultivating"
- ),
- "expertise" to mapOf(
- "levels" to listOf(0, 50, 100, 250, 500, 1000, 2500, 5500, 10000, 15000),
- "nbtNum" to "expertise_kills"
- ),
- "hecatomb" to mapOf(
- "levels" to listOf(0, 2, 5, 10, 20, 30, 40, 60, 80, 100),
- "nbtNum" to "hecatomb_s_runs"
- ),
- "champion" to mapOf(
- "levels" to listOf(
- 0,
- 50000,
- 100000,
- 250000,
- 500000,
- 1000000,
- 1500000,
- 2000000,
- 2500000,
- 3000000
- ), "nbtNum" to "champion_combat_xp"
- )
-) // nbtNum is the id of the enchantment in the nbt data
-
private fun getVisitingName(): String {
val tabData = getTabList()
val ownerRegex = Regex(".*Owner: (\\w+).*")
@@ -315,11 +272,9 @@ enum class DiscordStatus(private val displayMessageSupplier: Supplier<String>?)
val extraAttributes = getExtraAttributes(itemInHand)
fun getProgressPercent(amount: Int, levels: List<Int>): String {
- var currentLevel = 0
var percent = "MAXED"
for (level in levels.indices) {
if (amount > levels[level]) {
- currentLevel++
continue
}
percent = if (amount.toDouble() == 0.0) {
@@ -336,15 +291,15 @@ enum class DiscordStatus(private val displayMessageSupplier: Supplier<String>?)
if (extraAttributes != null) {
val enchantments = extraAttributes.getCompoundTag("enchantments")
var stackingEnchant = ""
- for (enchant in stackingEnchants.keys) {
- if (extraAttributes.hasKey(stackingEnchants[enchant]?.get("nbtNum").toString())) {
- stackingEnchant = enchant
+ for (enchant in DiscordRPCManager.stackingEnchants) {
+ if (extraAttributes.hasKey(enchant.value.statName)) {
+ stackingEnchant = enchant.key
break
}
}
- val levels = stackingEnchants[stackingEnchant]?.get("levels") as? List<Int> ?: listOf(0)
+ val levels = DiscordRPCManager.stackingEnchants[stackingEnchant]?.levels ?: listOf(0)
val level = enchantments.getInteger(stackingEnchant)
- val amount = extraAttributes.getInteger(stackingEnchants[stackingEnchant]?.get("nbtNum").toString())
+ val amount = extraAttributes.getInteger(DiscordRPCManager.stackingEnchants[stackingEnchant]?.statName)
val stackingPercent = getProgressPercent(amount, levels)
stackingReturn =