From 2a453c40a8f9254de66b5175f7068e376dbcfb40 Mon Sep 17 00:00:00 2001 From: itsskaiya Date: Wed, 19 Nov 2025 18:55:18 -0500 Subject: [PATCH] Fixed DiscordRPC not working --- package.json | 3 +++ src/discord-rpc.js | 33 ++++++++++++++++++++++++--------- 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index d1f27df..7c78df4 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,9 @@ "build": { "appId": "com.skylar.waifuboard", "productName": "Waifu Board", + "extraResources": [ + "./.env" + ], "win": { "target": "portable", "icon": "public/waifuboards.ico" diff --git a/src/discord-rpc.js b/src/discord-rpc.js index f95b7eb..48cf124 100644 --- a/src/discord-rpc.js +++ b/src/discord-rpc.js @@ -1,5 +1,17 @@ +const { app } = require('electron'); +const path = require('path'); +const fs = require('fs'); const { DiscordRPCClient } = require('@ryuziii/discord-rpc'); -require('dotenv').config(); + +const envPath = app.isPackaged + ? path.join(process.resourcesPath, '.env') + : path.join(__dirname, '../.env'); + +if (fs.existsSync(envPath)) { + require('dotenv').config({ path: envPath }); +} else { + console.warn(`Discord RPC: Could not find .env file at ${envPath}`); +} let rpcClient; let reconnectTimer; @@ -8,11 +20,11 @@ function initDiscordRPC() { const clientId = process.env.DISCORD_CLIENT_ID; if (!clientId) { - console.warn('Discord RPC: Invalid or missing Client ID. Check your .env file.'); + console.warn('Discord RPC: No Client ID found. Make sure .env is copied to resources.'); return; } - console.log(`Discord RPC: Initializing with Client ID ending in ...${clientId.slice(-4)}`); + console.log(`Discord RPC: Initializing with Client ID ...${clientId.slice(-4)}`); if (rpcClient) { try { rpcClient.destroy(); } catch (e) {} @@ -44,7 +56,9 @@ function initDiscordRPC() { }); rpcClient.on('disconnected', () => { - console.log('Discord RPC: Disconnected. Attempting to reconnect in 10s...'); + if (!app.isPackaged) { + console.log('Discord RPC: Disconnected. Attempting to reconnect in 10s...'); + } if (!reconnectTimer) { reconnectTimer = setTimeout(() => { initDiscordRPC(); @@ -64,16 +78,17 @@ function initDiscordRPC() { function setActivity() { if (!rpcClient) return; + const versionString = `v${app.getVersion()}`; + try { - const activity = { + rpcClient.setActivity({ details: 'Browsing', state: 'In App', startTimestamp: new Date(), - largeImageKey: 'bigpicture', + largeImageKey: 'bigpicture', + largeImageText: versionString, instance: false, - }; - rpcClient.setActivity(activity); - console.log('Discord RPC: Activity set successfully'); + }); } catch (error) { console.error("Discord RPC: Failed to set activity", error); }