aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me
diff options
context:
space:
mode:
authorTacoMonkey <75862693+TacoMonkey11@users.noreply.github.com>2022-01-27 14:42:04 -0500
committerTacoMonkey <75862693+TacoMonkey11@users.noreply.github.com>2022-01-27 14:42:04 -0500
commit9a7ff8402cab3367a3bb39a203cffdd3fb912ba1 (patch)
tree6800ed02f13ca5adbafd474f30c9dc51d23dc143 /src/main/java/me
parent11b4fa0174904bf31f6ddb38ac161a3a91916da5 (diff)
downloadSkyblocker-9a7ff8402cab3367a3bb39a203cffdd3fb912ba1.tar.gz
Skyblocker-9a7ff8402cab3367a3bb39a203cffdd3fb912ba1.tar.bz2
Skyblocker-9a7ff8402cab3367a3bb39a203cffdd3fb912ba1.zip
Rewrote the presence to actually work
Diffstat (limited to 'src/main/java/me')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java17
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java67
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/utils/Discord.java74
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java1
4 files changed, 78 insertions, 81 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java
index fac4107a..ceb55549 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java
@@ -2,8 +2,8 @@ package me.xmrvizzy.skyblocker;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import me.xmrvizzy.skyblocker.container.ContainerSolverManager;
+import me.xmrvizzy.skyblocker.discord.DiscordRPCManager;
import me.xmrvizzy.skyblocker.skyblock.dungeon.DungeonBlaze;
-import me.xmrvizzy.skyblocker.utils.Discord;
import me.xmrvizzy.skyblocker.utils.Utils;
import net.minecraft.client.MinecraftClient;
@@ -11,6 +11,8 @@ public class SkyblockerMod {
public static final String NAMESPACE = "skyblocker";
private static final SkyblockerMod instance = new SkyblockerMod();
public final ContainerSolverManager containerSolverManager = new ContainerSolverManager();
+ public DiscordRPCManager discordRPCManager = new DiscordRPCManager();
+ public static int rpTimer = 0;
private SkyblockerMod() {
}
@@ -35,13 +37,16 @@ public class SkyblockerMod {
//System.out.println("Blazesolver: " + e);
}
if (ticks % 20 == 0) {
+ rpTimer++;
+ if (rpTimer == 5){
+ discordRPCManager.updatePresence();
+ rpTimer = 0;
+ }
if (client.world != null && !client.isInSingleplayer())
Utils.sbChecker();
- Discord.update();
- if (Discord.connected){
- if (SkyblockerConfig.get().general.richPresence.enableRichPresence) Discord.updatePresence(Discord.getInfo(), SkyblockerConfig.get().general.richPresence.customMessage);
- if (!SkyblockerConfig.get().general.richPresence.enableRichPresence || !Utils.isSkyblock || client.world == null) Discord.stop();
- }
+ if (!discordRPCManager.isConnected && Utils.isSkyblock && SkyblockerConfig.get().general.richPresence.enableRichPresence) discordRPCManager.start();
+ if (discordRPCManager.isConnected && !SkyblockerConfig.get().general.richPresence.enableRichPresence) discordRPCManager.stop();
+ if (client.world == null || client.isInSingleplayer() || !Utils.isSkyblock) if (discordRPCManager.isConnected)discordRPCManager.stop();
ticks = 0;
}
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java b/src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java
new file mode 100644
index 00000000..fc151371
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java
@@ -0,0 +1,67 @@
+package me.xmrvizzy.skyblocker.discord;
+
+import com.jagrosh.discordipc.IPCClient;
+import com.jagrosh.discordipc.IPCListener;
+import com.jagrosh.discordipc.entities.RichPresence;
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
+import me.xmrvizzy.skyblocker.utils.Utils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.text.DecimalFormat;
+import java.time.OffsetDateTime;
+
+public class DiscordRPCManager implements IPCListener{
+ public static long startTimestamp;
+ public static IPCClient client;
+ public boolean isConnected;
+ public static final Logger logger = LoggerFactory.getLogger("Skyblocker DiscordRPC");
+ public static DecimalFormat dFormat = new DecimalFormat("###,###.##");
+
+ public void start(){
+ try {
+ logger.info("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());
+ }
+ } catch (Throwable ex) {
+ logger.error("unexpected error occurred while trying to start...");
+ ex.printStackTrace();
+ }
+ }
+
+ public void updatePresence(){
+ RichPresence presence = new RichPresence.Builder()
+ .setState(SkyblockerConfig.get().general.richPresence.customMessage)
+ .setDetails(getInfo())
+ .setStartTimestamp(startTimestamp)
+ .setLargeImage("skyblocker-default")
+ .build();
+ if (client != null && isConnected) client.sendRichPresence(presence);
+ }
+
+ public String getInfo(){
+ String info = null;
+ if (SkyblockerConfig.get().general.richPresence.info == SkyblockerConfig.Info.BITS) info = "Bits: " + Utils.getBits();
+ if (SkyblockerConfig.get().general.richPresence.info == SkyblockerConfig.Info.PURSE) info = "Purse: " + dFormat.format(Utils.getPurse());
+ if (SkyblockerConfig.get().general.richPresence.info == SkyblockerConfig.Info.LOCATION) info = "⏣ " + Utils.getLocation();
+ return info;
+ }
+
+ public void stop(){
+ isConnected = false;
+ client.close();
+ client = null;
+ }
+
+ @Override
+ public void onReady(IPCClient client) {
+ logger.info("Started!");
+ isConnected = true;
+ }
+}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/Discord.java b/src/main/java/me/xmrvizzy/skyblocker/utils/Discord.java
deleted file mode 100644
index 73ade9aa..00000000
--- a/src/main/java/me/xmrvizzy/skyblocker/utils/Discord.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package me.xmrvizzy.skyblocker.utils;
-
-import com.jagrosh.discordipc.IPCClient;
-import com.jagrosh.discordipc.IPCListener;
-import com.jagrosh.discordipc.entities.RichPresence;
-import com.jagrosh.discordipc.entities.RichPresenceButton;
-import me.xmrvizzy.skyblocker.SkyblockerMod;
-import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.text.DecimalFormat;
-
-
-public class Discord {
- public static Logger logger = LoggerFactory.getLogger(SkyblockerMod.NAMESPACE);
- public static IPCClient ipcClient = new IPCClient(934607927837356052L);
- public static boolean connected = false;
- public static boolean warned = false;
- public static DecimalFormat dFormat = new DecimalFormat("###,###.##");
-
-
- public static void updatePresence(String state, String details){
- logger.debug("updatePresence");
- RichPresence.Builder builder = new RichPresence.Builder();
- RichPresenceButton[] button = new RichPresenceButton[0];
- builder.setState(state)
- .setDetails(details)
- .setButtons(button)
- .setLargeImage("skyblocker-default");
- ipcClient.sendRichPresence(builder.build());
- }
-
- public static String getInfo(){
- String info = null;
- if (SkyblockerConfig.get().general.richPresence.info == SkyblockerConfig.Info.BITS) info = "Bits: " + Utils.getBits();
- if (SkyblockerConfig.get().general.richPresence.info == SkyblockerConfig.Info.PURSE) info = "Purse: " + dFormat.format(Utils.getPurse());
- if (SkyblockerConfig.get().general.richPresence.info == SkyblockerConfig.Info.LOCATION) info = "⏣ " + Utils.getLocation();
- return info;
- }
-
- public static void stop(){
- ipcClient.close();
- ipcClient = null;
- connected = false;
- }
-
- public static void update(){
- if (Utils.isSkyblock && SkyblockerConfig.get().general.richPresence.enableRichPresence){
-
- if (!connected){
- try {
- ipcClient = new IPCClient(934607927837356052L);
- ipcClient.connect();
- connected = true;
-
- } catch (Exception e) {
- if (!warned){
- if (e.getLocalizedMessage().equals("java.net.SocketException: Connection refused"))
- logger.warn("Discord client not running");
- warned = true;
- }
- }
- }
-
- ipcClient.setListener(new IPCListener() {
- @Override
- public void onDisconnect(IPCClient client, Throwable t) {
- IPCListener.super.onDisconnect(client, t);
- connected = false;
- }
- });
- }
-}}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java b/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java
index d790755d..8f299ac5 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java
@@ -2,7 +2,6 @@ package me.xmrvizzy.skyblocker.utils;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
-import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import me.xmrvizzy.skyblocker.skyblock.item.PriceInfoTooltip;
import net.fabricmc.fabric.api.client.item.v1.ItemTooltipCallback;
import net.minecraft.client.MinecraftClient;