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": {
"appId": "com.skylar.waifuboard",
"productName": "Waifu Board",
"extraResources": [
"./.env"
],
"win": {
"target": "portable",
"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');
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);
}