Files
GDL-Continuation/public/discordRPC.js
T
2025-07-31 00:53:24 +02:00

60 lines
1.3 KiB
JavaScript

const { Client } = require('discord-rpc');
const log = require('electron-log');
let client;
let activity;
const initialAppStartup = Math.floor(Date.now() / 1000);
const defaultValue = {
details: 'Idle',
startTimestamp: initialAppStartup,
largeImageKey: 'default_big',
largeImageText: 'GDLauncher - A Custom Minecraft Launcher',
instance: false
};
exports.initRPC = () => {
client = new Client({ transport: 'ipc' });
activity = defaultValue;
client.on('ready', () => {
log.log('Discord RPC Connected');
client.setActivity(activity);
});
client.login({ clientId: '555898932467597312' }).catch(error => {
if (error.message.includes('ENOENT')) {
log.error('Unable to initialize Discord RPC, no client detected.');
} else {
log.error('Unable to initialize Discord RPC:', error);
}
});
};
exports.update = details => {
if (!client) return;
activity = {
...activity,
startTimestamp: Math.floor(Date.now() / 1000),
details: `Playing ${details}`
};
client.setActivity(activity);
};
exports.reset = () => {
if (!client) return;
activity = defaultValue;
activity.startTimestamp = initialAppStartup;
client.setActivity(activity);
};
exports.shutdownRPC = () => {
if (!client) return;
client.clearActivity();
client.destroy();
client = null;
activity = null;
};