package im.rez.discordrpc;
import club.minnced.discord.rpc.DiscordEventHandlers;
import club.minnced.discord.rpc.DiscordRPC;
import club.minnced.discord.rpc.DiscordRichPresence;
import static im.rez.Client.userData;
public class RPC {
private static final String APPLICATION_ID = "твой айди дс рпс ";
private static final String LINE_1 = "UiD - " + userData.getUid(); // вместо userData.getUid(); гетай по своему способу
private static final String LINE_2 = "Build - Beta";
private static final DiscordRPC rpc = DiscordRPC.INSTANCE;
private static final DiscordRichPresence presence = new DiscordRichPresence();
private static Thread rpcThread;
private static boolean initialized = false;
public static void init() {
if (initialized) return;
DiscordEventHandlers handlers = new DiscordEventHandlers();
handlers.ready = (user) -> System.out.println("Дискорд рпс готов для: " + user.username + "#" + user.discriminator);
rpc.Discord_Initialize(APPLICATION_ID, handlers, true, null);
presence.startTimestamp = System.currentTimeMillis() / 1000;
presence.details = LINE_1;
presence.state = LINE_2;
presence.largeImageKey = "main_icon";
presence.largeImageText = "югейм";
rpc.Discord_UpdatePresence(presence);
rpcThread = new Thread(() -> {
while (!Thread.currentThread().isInterrupted()) {
rpc.Discord_RunCallbacks();
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
}, "RPC-Callback-Handler");
rpcThread.start();
initialized = true;
Runtime.getRuntime().addShutdownHook(new Thread(RPC::shutdown));
}
public static void shutdown() {
if (!initialized) return;
if (rpcThread != null && !rpcThread.isInterrupted()) {
rpcThread.interrupt();
}
rpc.Discord_Shutdown();
initialized = false;
}
}