diff options
Diffstat (limited to 'src/main/java')
3 files changed, 29 insertions, 31 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java index 8cd71770..f804d90e 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java +++ b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java @@ -15,12 +15,11 @@ public class SkyblockerMod { public final Scheduler scheduler = new Scheduler(); public final ContainerSolverManager containerSolverManager = new ContainerSolverManager(); - public final DiscordRPCManager discordRPCManager = new DiscordRPCManager(); public final StatusBarTracker statusBarTracker = new StatusBarTracker(); private SkyblockerMod() { scheduler.scheduleCyclic(Utils::sbChecker, 20); - scheduler.scheduleCyclic(discordRPCManager::update, 100); + scheduler.scheduleCyclic(DiscordRPCManager::update, 100); scheduler.scheduleCyclic(DungeonBlaze::update, 4); scheduler.scheduleCyclic(BackpackPreview::tick, 50); scheduler.scheduleCyclic(DwarvenHud::update, 40); diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java index 8819c2af..23972b29 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java +++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java @@ -1,8 +1,5 @@ package me.xmrvizzy.skyblocker.config; -import java.util.ArrayList; -import java.util.List; - import me.shedaniel.autoconfig.AutoConfig; import me.shedaniel.autoconfig.ConfigData; import me.shedaniel.autoconfig.annotation.Config; @@ -10,6 +7,9 @@ import me.shedaniel.autoconfig.annotation.ConfigEntry; import me.shedaniel.autoconfig.serializer.GsonConfigSerializer; import me.xmrvizzy.skyblocker.chat.ChatFilterResult; +import java.util.ArrayList; +import java.util.List; + @Config(name = "skyblocker") public class SkyblockerConfig implements ConfigData { @@ -205,7 +205,7 @@ public class SkyblockerConfig implements ConfigData { @ConfigEntry.Gui.Tooltip() public Info info = Info.LOCATION; public boolean cycleMode = false; - public String customMessage; + public String customMessage = "Playing Skyblock"; } public static class ItemList { diff --git a/src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java b/src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java index 87405989..10b88ce8 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java +++ b/src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java @@ -11,52 +11,51 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.text.DecimalFormat; -import java.time.Instant; public class DiscordRPCManager { public static final DecimalFormat DECIMAL_FORMAT = new DecimalFormat("###,###.##"); - public static final Logger LOGGER = LoggerFactory.getLogger(DiscordRPCManager.class.getName()); + public static final Logger LOGGER = LoggerFactory.getLogger("Skyblocker Discord RPC"); public static long startTimeStamp; public static int cycleCount; public static void init(){ SkyblockEvents.LEAVE.register(DiscordIPC::stop); + SkyblockEvents.JOIN.register(() -> { + startTimeStamp = System.currentTimeMillis(); + if (DiscordIPC.start(934607927837356052L, null)) { + DiscordIPC.setActivity(buildPresence()); + LOGGER.info("Discord RPC started"); + } else { + LOGGER.error("Discord RPC failed to start"); + } + }); } - public void update(){ - if (SkyblockerConfig.get().richPresence.customMessage != null ) { - if (SkyblockerConfig.get().richPresence.customMessage.isBlank()) { - SkyblockerConfig.get().richPresence.customMessage = "All on Fabric!"; - AutoConfig.getConfigHolder(SkyblockerConfig.class).save(); - } + public static void update(){ + // If the custom message is empty, discord will keep the last message, this is can serve as a default if the user doesn't want a custom message + if (SkyblockerConfig.get().richPresence.customMessage.isEmpty()) { + SkyblockerConfig.get().richPresence.customMessage = "Playing Skyblock"; + AutoConfig.getConfigHolder(SkyblockerConfig.class).save(); } - if (!SkyblockerConfig.get().richPresence.enableRichPresence || !Utils.isOnSkyblock){ - if (DiscordIPC.isConnected()) DiscordIPC.stop(); - } - if (SkyblockerConfig.get().richPresence.enableRichPresence && Utils.isOnSkyblock && !DiscordIPC.isConnected()){ - if (!DiscordIPC.start(934607927837356052L, () -> { - LOGGER.info("Started up rich presence"); - startTimeStamp = Instant.now().getEpochSecond(); - })){ - LOGGER.info("An error occurred while attempting to connect to discord"); - return; - } + if ((!Utils.isOnSkyblock || !SkyblockerConfig.get().richPresence.enableRichPresence) && DiscordIPC.isConnected()){ + DiscordIPC.stop(); + LOGGER.info("Discord RPC stopped"); + return; } - if (SkyblockerConfig.get().richPresence.cycleMode) - cycleCount = (cycleCount + 1) % 3; - buildPresence(); + if (SkyblockerConfig.get().richPresence.cycleMode) cycleCount = (cycleCount + 1) % 3; + DiscordIPC.setActivity(buildPresence()); } - public void buildPresence(){ + public static RichPresence buildPresence(){ RichPresence presence = new RichPresence(); presence.setLargeImage("skyblocker-default", null); presence.setStart(startTimeStamp); presence.setDetails(SkyblockerConfig.get().richPresence.customMessage); presence.setState(getInfo()); - DiscordIPC.setActivity(presence); + return presence; } - public String getInfo(){ + public static String getInfo(){ String info = null; if (!SkyblockerConfig.get().richPresence.cycleMode){ switch (SkyblockerConfig.get().richPresence.info){ |