diff options
author | Spencer <75862693+TacoMonkey11@users.noreply.github.com> | 2022-04-12 07:54:27 -0400 |
---|---|---|
committer | Spencer <75862693+TacoMonkey11@users.noreply.github.com> | 2022-04-12 07:54:27 -0400 |
commit | ff596b83910a93b111eea8996777ccb2bfa00b71 (patch) | |
tree | e7d32360c4566e723730f258e74957322365e119 /src/main/java/me/xmrvizzy/skyblocker | |
parent | 481ea9be68c316ff362c64457f72968ec72120d5 (diff) | |
download | Skyblocker-ff596b83910a93b111eea8996777ccb2bfa00b71.tar.gz Skyblocker-ff596b83910a93b111eea8996777ccb2bfa00b71.tar.bz2 Skyblocker-ff596b83910a93b111eea8996777ccb2bfa00b71.zip |
Switch to new discord-ipc library
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker')
-rw-r--r-- | src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java | 2 | ||||
-rw-r--r-- | src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java | 103 |
2 files changed, 34 insertions, 71 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java index 1862313b..9c832baa 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java +++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java @@ -65,7 +65,7 @@ public class SkyblockerConfig implements ConfigData { @ConfigEntry.Gui.Tooltip() public Info info = Info.LOCATION; public boolean cycleMode = false; - public String customMessage; + public String customMessage = "All on Fabric!"; } 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 e13dfd09..43d5f9f7 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java +++ b/src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java @@ -1,101 +1,64 @@ package me.xmrvizzy.skyblocker.discord; -import com.google.gson.JsonObject; -import com.jagrosh.discordipc.IPCClient; -import com.jagrosh.discordipc.IPCListener; -import com.jagrosh.discordipc.entities.RichPresence; -import com.jagrosh.discordipc.entities.pipe.PipeStatus; + import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import me.xmrvizzy.skyblocker.utils.Utils; +import meteordevelopment.discordipc.DiscordIPC; +import meteordevelopment.discordipc.RichPresence; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.text.DecimalFormat; -import java.time.OffsetDateTime; +import java.time.Instant; -public class DiscordRPCManager implements IPCListener{ - public static long startTimestamp; - public static IPCClient client; - public boolean isConnected; - private static final Logger LOGGER = LoggerFactory.getLogger(DiscordRPCManager.class.getName()); - public static DecimalFormat dFormat = new DecimalFormat("###,###.##"); - public int cycleCount = 0; +public class DiscordRPCManager { + public static final DecimalFormat DECIMAL_FORMAT = new DecimalFormat("###,###.##"); + public static final Logger LOGGER = LoggerFactory.getLogger(DiscordRPCManager.class.getName()); + public static long startTimeStamp; + public static int cycleCount; - public void update() { - if (!SkyblockerConfig.get().richPresence.enableRichPresence || !Utils.isOnSkyblock) { - if (isConnected) stop(); - return; + public void update(){ + if (!SkyblockerConfig.get().richPresence.enableRichPresence || !Utils.isOnSkyblock){ + if (DiscordIPC.isConnected()) DiscordIPC.stop(); } - if (!isConnected) start(); - if (SkyblockerConfig.get().richPresence.cycleMode) - cycleCount = (cycleCount + 1) % 3; - updatePresence(); - } - - public void start(){ - try { - LOGGER.info("[Skyblocker DiscordRPC] Starting..."); - startTimestamp = OffsetDateTime.now().toEpochSecond(); - client = new IPCClient(934607927837356052L); - client.setListener(this); - try { - client.connect(); - } catch (Exception e) { - LOGGER.warn("Failed to connect: " + e.getMessage()); + 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; } - } catch (Throwable ex) { - LOGGER.error("[Skyblocker DiscordRPC] unexpected error occurred while trying to start..."); - ex.printStackTrace(); } + if (SkyblockerConfig.get().richPresence.cycleMode) + cycleCount = (cycleCount + 1) % 3; + buildPresence(); } - public void updatePresence(){ - RichPresence presence = new RichPresence.Builder() - .setState(SkyblockerConfig.get().richPresence.customMessage) - .setDetails(getInfo()) - .setStartTimestamp(startTimestamp) - .setLargeImage("skyblocker-default") - .build(); - if (client != null && isConnected) client.sendRichPresence(presence); + public void 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); } public String getInfo(){ String info = null; if (!SkyblockerConfig.get().richPresence.cycleMode){ switch (SkyblockerConfig.get().richPresence.info){ - case BITS -> info = "Bits: " + dFormat.format(Utils.getBits()); - case PURSE -> info = "Purse: " + dFormat.format(Utils.getPurse()); + case BITS -> info = "Bits: " + DECIMAL_FORMAT.format(Utils.getBits()); + case PURSE -> info = "Purse: " + DECIMAL_FORMAT.format(Utils.getPurse()); case LOCATION -> info = "⏣ " + Utils.getLocation(); } } else if (SkyblockerConfig.get().richPresence.cycleMode){ switch (cycleCount){ - case 0 -> info = "Bits: " + dFormat.format(Utils.getBits()); - case 1 -> info = "Purse: " + dFormat.format(Utils.getPurse()); + case 0 -> info = "Bits: " + DECIMAL_FORMAT.format(Utils.getBits()); + case 1 -> info = "Purse: " + DECIMAL_FORMAT.format(Utils.getPurse()); case 2 -> info = "⏣ " + Utils.getLocation(); } } return info; } - - public void stop(){ - if (client != null && client.getStatus() == PipeStatus.CONNECTED) { - LOGGER.info("[Skyblocker DiscordRPC] Closing..."); - isConnected = false; - client.close(); - client = null; - } - } - - @Override - public void onReady(IPCClient client) { - LOGGER.info("[Skyblocker DiscordRPC] Started!"); - isConnected = true; - } - - @Override - public void onClose(IPCClient client, JsonObject json) { - LOGGER.info("[Skyblocker DiscordRPC] Closed"); - isConnected = false; - } - } |