Fixed DiscordRPC not working

This commit is contained in:
2025-11-19 18:55:18 -05:00
parent 5f3020ca6e
commit 2a453c40a8
2 changed files with 27 additions and 9 deletions

View File

@@ -28,6 +28,9 @@
"build": { "build": {
"appId": "com.skylar.waifuboard", "appId": "com.skylar.waifuboard",
"productName": "Waifu Board", "productName": "Waifu Board",
"extraResources": [
"./.env"
],
"win": { "win": {
"target": "portable", "target": "portable",
"icon": "public/waifuboards.ico" "icon": "public/waifuboards.ico"

View File

@@ -1,5 +1,17 @@
const { app } = require('electron');
const path = require('path');
const fs = require('fs');
const { DiscordRPCClient } = require('@ryuziii/discord-rpc'); 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 rpcClient;
let reconnectTimer; let reconnectTimer;
@@ -8,11 +20,11 @@ function initDiscordRPC() {
const clientId = process.env.DISCORD_CLIENT_ID; const clientId = process.env.DISCORD_CLIENT_ID;
if (!clientId) { 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; 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) { if (rpcClient) {
try { rpcClient.destroy(); } catch (e) {} try { rpcClient.destroy(); } catch (e) {}
@@ -44,7 +56,9 @@ function initDiscordRPC() {
}); });
rpcClient.on('disconnected', () => { rpcClient.on('disconnected', () => {
if (!app.isPackaged) {
console.log('Discord RPC: Disconnected. Attempting to reconnect in 10s...'); console.log('Discord RPC: Disconnected. Attempting to reconnect in 10s...');
}
if (!reconnectTimer) { if (!reconnectTimer) {
reconnectTimer = setTimeout(() => { reconnectTimer = setTimeout(() => {
initDiscordRPC(); initDiscordRPC();
@@ -64,16 +78,17 @@ function initDiscordRPC() {
function setActivity() { function setActivity() {
if (!rpcClient) return; if (!rpcClient) return;
const versionString = `v${app.getVersion()}`;
try { try {
const activity = { rpcClient.setActivity({
details: 'Browsing', details: 'Browsing',
state: 'In App', state: 'In App',
startTimestamp: new Date(), startTimestamp: new Date(),
largeImageKey: 'bigpicture', largeImageKey: 'bigpicture',
largeImageText: versionString,
instance: false, instance: false,
}; });
rpcClient.setActivity(activity);
console.log('Discord RPC: Activity set successfully');
} catch (error) { } catch (error) {
console.error("Discord RPC: Failed to set activity", error); console.error("Discord RPC: Failed to set activity", error);
} }