diff options
author | NetheriteMiner <88792142+NetheriteMiner@users.noreply.github.com> | 2023-05-11 07:04:38 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-11 13:04:38 +0200 |
commit | a7bebf678bd9d16027b84403c3e39a102bb670ef (patch) | |
tree | 69639c1378ed58259429f548d737fbf4103681a1 /src/main/java/at/hannibal2/skyhanni/features | |
parent | c3caf0b538747d46d02f38a2d2182c821ef1b0f0 (diff) | |
download | skyhanni-a7bebf678bd9d16027b84403c3e39a102bb670ef.tar.gz skyhanni-a7bebf678bd9d16027b84403c3e39a102bb670ef.tar.bz2 skyhanni-a7bebf678bd9d16027b84403c3e39a102bb670ef.zip |
Minor tweaks to Discord RPC. (#101)
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features')
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/misc/discordrpc/DiscordRPCManager.kt | 29 | ||||
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/misc/discordrpc/DiscordStatus.kt | 8 |
2 files changed, 31 insertions, 6 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 21539451f..6717f861b 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 @@ -22,7 +22,7 @@ import java.util.concurrent.Executors import java.util.concurrent.ScheduledExecutorService import java.util.concurrent.TimeUnit -class DiscordRPCManager : IPCListener { +object DiscordRPCManager : IPCListener { private val applicationID = 653443797182578707L private val updatePeriod = 4200L @@ -39,7 +39,7 @@ class DiscordRPCManager : IPCListener { private val DiscordLocationKey = DiscordLocationKey() - private fun start() { + fun start(fromCommand: Boolean = false) { coroutineScope.launch { try { if (isActive()) { @@ -55,9 +55,13 @@ class DiscordRPCManager : IPCListener { try { client?.connect() + if (fromCommand) LorenzUtils.chat("§a[SkyHanni] Successfully started Rich Presence!") // confirm that /shrpcstart worked } catch (ex: Exception) { consoleLog("Warn: Failed to connect to RPC!") consoleLog(ex.toString()) + LorenzUtils.clickableChat("§e[SkyHanni] Discord Rich Presence was unable to start! " + + "This usually happens when you join SkyBlock when Discord is not started. " + + "Please run /shrpcstart to retry once you have launched Discord.", "shrpcstart") } } catch (ex: Throwable) { consoleLog("Warn: Discord RPC has thrown an unexpected error while trying to start...") @@ -121,7 +125,7 @@ class DiscordRPCManager : IPCListener { }, 0, updatePeriod) } - override fun onClose(client: IPCClient, json: JsonObject) { + override fun onClose(client: IPCClient, json: JsonObject?) { consoleLog("Discord RPC closed.") this.client = null connected = false @@ -173,4 +177,23 @@ class DiscordRPCManager : IPCListener { fun onDisconnect(event: FMLNetworkEvent.ClientDisconnectionFromServerEvent) { stop() } + + fun startCommand() { + if (!config.enabled.get()) { + LorenzUtils.chat("§c[SkyHanni] Discord Rich Presence is disabled. Enable it in the config §e/sh discord") + return + } + + if (isActive()) { + LorenzUtils.chat("§e[SkyHanni] Discord Rich Presence is already active!") + return + } + + LorenzUtils.chat("§e[SkyHanni] Attempting to start Discord Rich Presence...") + try { + start(true) + } catch (e: Exception) { + LorenzUtils.chat("§c[SkyHanni] Unable to start Discord Rich Presence! Please report this on Discord and ping NetheriteMiner#6267.") + } + } } 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 f76ea9dc4..fae6b5104 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 @@ -14,6 +14,7 @@ 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.miscfeatures.PetInfoOverlay.getCurrentPet import io.github.moulberry.notenoughupdates.util.SkyBlockTime import java.util.function.Supplier import java.util.regex.Pattern @@ -76,7 +77,7 @@ enum class DiscordStatus(private val displayMessageSupplier: Supplier<String>?) when (groups[item]) { "❤" -> statString = "❤${groups[item - 1]} " "❈ Defense" -> statString = "$statString❈${groups[item - 1]} " - "✎ Mana" -> statString = "$statString✎${groups[item - 1]} " + "✎" -> statString = "$statString✎${groups[item - 1]} " } } statString @@ -176,8 +177,9 @@ enum class DiscordStatus(private val displayMessageSupplier: Supplier<String>?) val pet = SkyHanniMod.feature.hidden.currentPet val colorCode = pet.substring(1..2).first() val petName = pet.substring(2) + val petLevel = getCurrentPet().petLevel.currentLevel - "${colorCodeToRarity(colorCode)} $petName" + "[Lvl $petLevel] ${colorCodeToRarity(colorCode)} $petName" }) ; @@ -187,4 +189,4 @@ enum class DiscordStatus(private val displayMessageSupplier: Supplier<String>?) } return "" } -}
\ No newline at end of file +} |