Fixed DiscordRPC not working
This commit is contained in:
@@ -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"
|
||||||
|
|||||||
@@ -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', () => {
|
||||||
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) {
|
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);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user