aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/utils
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/utils')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/utils/Discord.java74
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java49
2 files changed, 123 insertions, 0 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/Discord.java b/src/main/java/me/xmrvizzy/skyblocker/utils/Discord.java
new file mode 100644
index 00000000..e04f2bdd
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/utils/Discord.java
@@ -0,0 +1,74 @@
+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.PIGGY) 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 87e5c846..93a28993 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java
@@ -2,6 +2,7 @@ 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;
@@ -33,6 +34,7 @@ public class Utils {
ItemTooltipCallback.EVENT.register(PriceInfoTooltip::onInjectTooltip);
}
isSkyblock = true;
+
}
else isSkyblock = false;
@@ -44,6 +46,53 @@ public class Utils {
}
}
+ public static String getLocation() {
+ String location = null;
+ List<String> sidebarLines = getSidebar();
+ try{
+ for (int i = 0; i < sidebarLines.size(); i++) {
+ if(sidebarLines.get(i).contains("⏣")) location = sidebarLines.get(i);
+ }
+ location = location.replace('⏣', ' ').strip();
+ } catch (IndexOutOfBoundsException e) {
+ e.printStackTrace();
+ }
+ return location;
+ }
+ public static double getPurse() {
+ String purseString = null;
+ double purse = 0;
+
+ List<String> sidebarLines = getSidebar();
+ try{
+ for (int i = 0; i < sidebarLines.size(); i++) {
+ if(sidebarLines.get(i).contains("Piggy:")) purseString = sidebarLines.get(i);
+ if(sidebarLines.get(i).contains("Purse:")) purseString = sidebarLines.get(i);
+ }
+ if (purseString != null) purse = Double.parseDouble(purseString.replaceAll("[^0-9.]", "").strip());
+ else purse = 0;
+
+ } catch (IndexOutOfBoundsException e) {
+ e.printStackTrace();
+ }
+ return purse;
+ }
+ public static int getBits() {
+ int bits = 0;
+ String bitsString = null;
+ List<String> sidebarLines = getSidebar();
+ try{
+ for (int i = 0; i < sidebarLines.size(); i++) {
+ if(sidebarLines.get(i).contains("Bits")) bitsString = sidebarLines.get(i);
+ }
+ bits = Integer.parseInt(bitsString.replaceAll("Bits:", "").strip());
+ } catch (IndexOutOfBoundsException e) {
+ e.printStackTrace();
+ }
+ return bits;
+ }
+
+
public static List<String> getSidebar() {
List<String> lines = new ArrayList<>();
MinecraftClient client = MinecraftClient.getInstance();