aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker
diff options
context:
space:
mode:
authorSpencer <75862693+TacoMonkey11@users.noreply.github.com>2022-04-12 07:54:27 -0400
committerSpencer <75862693+TacoMonkey11@users.noreply.github.com>2022-04-12 07:54:27 -0400
commitff596b83910a93b111eea8996777ccb2bfa00b71 (patch)
treee7d32360c4566e723730f258e74957322365e119 /src/main/java/me/xmrvizzy/skyblocker
parent481ea9be68c316ff362c64457f72968ec72120d5 (diff)
downloadSkyblocker-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.java2
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java103
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;
- }
-
}