diff options
Diffstat (limited to 'desktop/main.js')
-rw-r--r-- | desktop/main.js | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/desktop/main.js b/desktop/main.js index 5efb923..509bd06 100644 --- a/desktop/main.js +++ b/desktop/main.js @@ -1,6 +1,43 @@ const { app, BrowserWindow, shell, ipcMain, session, Notification, nativeImage, Menu } = require('electron'); const path = require('node:path'); const http = require('http'); +const {Client} = require("@xhayper/discord-rpc"); + +global.rpcStatus = null; +global.rpcHandleError = false; + +setInterval(async () => { + if (mainWindow && !mainWindow.isDestroyed() && client && client.isConnected) { + global.rpcStatus = await mainWindow.webContents.executeJavaScript("window.discordRichPresenceData"); + + if (rpcStatus === null) { + await client.user?.clearActivity(); + } else { + await client.user?.setActivity(rpcStatus); + } + } +}, 5000); + +function loadRPC() { + try { + const { Client } = require('@xhayper/discord-rpc'); + + global.client = new Client({ + clientId: "1167169806127071333" + }); + + client.on("ready", () => { + global.rpcHandleError = true; + }); + + client.login(); + } catch (e) { + console.error(e); + if (global.rpcHandleError) loadRPC(); + } +} + +loadRPC(); function updateMenu(mainWindow) { let template = [ |