diff options
author | Kevin <92656833+kevinthegreat1@users.noreply.github.com> | 2023-11-25 18:00:35 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-25 21:00:35 -0500 |
commit | c8630ba14e7036ed09990f725ec6f927f0b1afc9 (patch) | |
tree | cc91058c81e596bc0a8c48cd65f99722524c42f3 /src/main/java/de/hysky | |
parent | 16d9d1b68c33c9b99c046d7b6c53bc8bbafc7a86 (diff) | |
download | Skyblocker-c8630ba14e7036ed09990f725ec6f927f0b1afc9.tar.gz Skyblocker-c8630ba14e7036ed09990f725ec6f927f0b1afc9.tar.bz2 Skyblocker-c8630ba14e7036ed09990f725ec6f927f0b1afc9.zip |
Update DiscordRPCManager (#426)
Diffstat (limited to 'src/main/java/de/hysky')
3 files changed, 27 insertions, 5 deletions
diff --git a/src/main/java/de/hysky/skyblocker/SkyblockerMod.java b/src/main/java/de/hysky/skyblocker/SkyblockerMod.java index ac19542a..f9bcbe0d 100644 --- a/src/main/java/de/hysky/skyblocker/SkyblockerMod.java +++ b/src/main/java/de/hysky/skyblocker/SkyblockerMod.java @@ -121,7 +121,7 @@ public class SkyblockerMod implements ClientModInitializer { containerSolverManager.init(); statusBarTracker.init(); Scheduler.INSTANCE.scheduleCyclic(Utils::update, 20); - Scheduler.INSTANCE.scheduleCyclic(DiscordRPCManager::updateDataAndPresence, 100); + Scheduler.INSTANCE.scheduleCyclic(DiscordRPCManager::updateDataAndPresence, 200); Scheduler.INSTANCE.scheduleCyclic(TicTacToe::tick, 4); Scheduler.INSTANCE.scheduleCyclic(LividColor::update, 10); Scheduler.INSTANCE.scheduleCyclic(BackpackPreview::tick, 50); diff --git a/src/main/java/de/hysky/skyblocker/mixin/discordipc/ConnectionMixin.java b/src/main/java/de/hysky/skyblocker/mixin/discordipc/ConnectionMixin.java new file mode 100644 index 00000000..47f1cadc --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/mixin/discordipc/ConnectionMixin.java @@ -0,0 +1,20 @@ +package de.hysky.skyblocker.mixin.discordipc; + +import de.hysky.skyblocker.utils.discord.DiscordRPCManager; +import meteordevelopment.discordipc.DiscordIPC; +import meteordevelopment.discordipc.connection.UnixConnection; +import meteordevelopment.discordipc.connection.WinConnection; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +import java.io.IOException; + +@Mixin(value = {UnixConnection.class, WinConnection.class}, remap = false) +public class ConnectionMixin { + @Redirect(method = "write", at = @At(value = "INVOKE", target = "Ljava/io/IOException;printStackTrace()V")) + private void write(IOException e) { + DiscordIPC.stop(); + DiscordRPCManager.LOGGER.warn("[Skyblocker] Discord RPC failed to update activity, connection lost", e); + } +} diff --git a/src/main/java/de/hysky/skyblocker/utils/discord/DiscordRPCManager.java b/src/main/java/de/hysky/skyblocker/utils/discord/DiscordRPCManager.java index df10a44d..b2104fdc 100644 --- a/src/main/java/de/hysky/skyblocker/utils/discord/DiscordRPCManager.java +++ b/src/main/java/de/hysky/skyblocker/utils/discord/DiscordRPCManager.java @@ -75,18 +75,20 @@ public class DiscordRPCManager { if (SkyblockerConfigManager.get().richPresence.enableRichPresence && Utils.isOnSkyblock()) { if (!DiscordIPC.isConnected()) { if (DiscordIPC.start(934607927837356052L, null)) { - LOGGER.info("Discord RPC started successfully"); + LOGGER.info("[Skyblocker] Discord RPC connected successfully"); } else { - LOGGER.error("Discord RPC failed to start"); + if (initialization) { + LOGGER.error("[Skyblocker] Discord RPC failed to connect"); + } return; } } DiscordIPC.setActivity(buildPresence()); } else if (DiscordIPC.isConnected()) { DiscordIPC.stop(); - LOGGER.info("Discord RPC stopped"); + LOGGER.info("[Skyblocker] Discord RPC disconnected"); } else if (initialization) { - LOGGER.info("Discord RPC is currently disabled"); + LOGGER.info("[Skyblocker] Discord RPC is currently disabled, will not connect"); } }); } |