diff --git a/build.gradle.kts b/build.gradle.kts index 80ce6ac..9391b89 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -108,7 +108,7 @@ dependencies { shadowImpl("com.github.LabyStudio:java-spotify-api:+:all") // Discord RPC - shadowImpl("com.github.MinnDevelopment:java-discord-rpc:v2.0.2") + shadowImpl("com.github.Vatuu:discord-rpc:1.6.2") } diff --git a/gradle.properties b/gradle.properties index 11473a9..a896c4e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,4 +3,4 @@ org.gradle.jvmargs=-Xmx2g baseGroup = com.github.jtxofficial.flustclient mcVersion = 1.8.9 modid = flustclient -version = v0.1.1-beta +version = v0.2.1-beta diff --git a/src/main/java/com/github/jtxofficial/flustclient/FlustClient.java b/src/main/java/com/github/jtxofficial/flustclient/FlustClient.java index d25f008..034a6ad 100644 --- a/src/main/java/com/github/jtxofficial/flustclient/FlustClient.java +++ b/src/main/java/com/github/jtxofficial/flustclient/FlustClient.java @@ -20,7 +20,7 @@ public class FlustClient { public static final String MODID = "flustclient"; - public static final String VERSION = "v0.1.1-beta"; + public static final String VERSION = "v0.2.1-beta"; public static final String NAME = "FlustClient"; @Mod.Instance(MODID) diff --git a/src/main/java/com/github/jtxofficial/flustclient/manager/DiscordRPCManager.java b/src/main/java/com/github/jtxofficial/flustclient/manager/DiscordRPCManager.java index ba7234a..605f609 100644 --- a/src/main/java/com/github/jtxofficial/flustclient/manager/DiscordRPCManager.java +++ b/src/main/java/com/github/jtxofficial/flustclient/manager/DiscordRPCManager.java @@ -1,8 +1,8 @@ package com.github.jtxofficial.flustclient.manager; -import club.minnced.discord.rpc.DiscordEventHandlers; -import club.minnced.discord.rpc.DiscordRPC; -import club.minnced.discord.rpc.DiscordRichPresence; +import net.arikia.dev.drpc.DiscordEventHandlers; +import net.arikia.dev.drpc.DiscordRPC; +import net.arikia.dev.drpc.DiscordRichPresence; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ServerData; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; @@ -12,9 +12,7 @@ public class DiscordRPCManager extends Manager { private static final String APPLICATION_ID = "1442966231723278510"; - private static final DiscordRPC lib = DiscordRPC.INSTANCE; - private final DiscordRichPresence presence = new DiscordRichPresence(); private long startTimestamp; private int updateCounter = 0; private static final int UPDATE_INTERVAL = 100; // Update every 5 seconds (100 ticks) @@ -24,10 +22,19 @@ public class DiscordRPCManager extends Manager { @Override public void init() { try { - DiscordEventHandlers handlers = new DiscordEventHandlers(); - handlers.errored = (errorCode, message) -> System.err.println("Discord RPC error: " + message); - - lib.Discord_Initialize(APPLICATION_ID, handlers, true, ""); + DiscordEventHandlers handlers = new DiscordEventHandlers.Builder() + .setReadyEventHandler(user -> { + System.out.println("Discord RPC ready! Logged in as: " + user.username + "#" + user.discriminator); + }) + .setErroredEventHandler((errorCode, message) -> { + System.err.println("Discord RPC error [" + errorCode + "]: " + message); + }) + .setDisconnectedEventHandler((errorCode, message) -> { + System.err.println("Discord RPC disconnected [" + errorCode + "]: " + message); + }) + .build(); + + DiscordRPC.discordInitialize(APPLICATION_ID, handlers, true); startTimestamp = System.currentTimeMillis() / 1000; // Set initial presence @@ -50,7 +57,7 @@ public void onClientTick(TickEvent.ClientTickEvent event) { } // Process Discord callbacks - lib.Discord_RunCallbacks(); + DiscordRPC.discordRunCallbacks(); // Update presence periodically updateCounter++; @@ -80,37 +87,39 @@ private void updatePresence() { if (mc.theWorld == null) { // Not in a world - show main menu - presence.details = "In Main Menu"; - presence.state = ""; - presence.largeImageKey = "flust_logo"; - presence.largeImageText = "FlustClient"; + DiscordRichPresence presence = new DiscordRichPresence.Builder("In Main Menu") + .setDetails("In Main Menu") + .setStartTimestamps(startTimestamp) + .setBigImage("flust_logo", "FlustClient") + .build(); + DiscordRPC.discordUpdatePresence(presence); } else { ServerData serverData = mc.getCurrentServerData(); if (serverData != null) { // On a multiplayer server - presence.details = "Playing on Server"; - presence.state = serverData.serverIP; + DiscordRichPresence.Builder builder = new DiscordRichPresence.Builder(serverData.serverIP) + .setDetails("Playing on Server") + .setStartTimestamps(startTimestamp) + .setBigImage("flust_logo", "FlustClient"); // Show player count if available if (mc.getNetHandler() != null && mc.getNetHandler().getPlayerInfoMap() != null) { int playerCount = mc.getNetHandler().getPlayerInfoMap().size(); - presence.partySize = playerCount; - presence.partyMax = 0; // Max players not easily available in 1.8.9 + builder.setParty("party", playerCount, 0); } + + DiscordRPC.discordUpdatePresence(builder.build()); } else { // Singleplayer or LAN - presence.details = "Playing Singleplayer"; - presence.state = ""; + DiscordRichPresence presence = new DiscordRichPresence.Builder("") + .setDetails("Playing Singleplayer") + .setStartTimestamps(startTimestamp) + .setBigImage("flust_logo", "FlustClient") + .build(); + DiscordRPC.discordUpdatePresence(presence); } - - presence.largeImageKey = "flust_logo"; - presence.largeImageText = "FlustClient Beta"; } - - presence.startTimestamp = startTimestamp; - - lib.Discord_UpdatePresence(presence); } catch (Exception e) { System.err.println("Failed to update Discord presence: " + e.getMessage()); } @@ -119,7 +128,7 @@ private void updatePresence() { public void shutdown() { if (initialized) { try { - lib.Discord_Shutdown(); + DiscordRPC.discordShutdown(); unregister(); initialized = false; } catch (Exception e) {