diff --git a/app/rpc.js b/app/rpc.js index 56bd7f0..d6cb94a 100644 --- a/app/rpc.js +++ b/app/rpc.js @@ -1,18 +1,28 @@ const { Client } = require("@xhayper/discord-rpc"); const { dialog, BrowserWindow } = require("electron"); +const store = require("./store"); const client = new Client({ clientId: "942637872530460742", }); +async function rpcError(status) { + const rpcerror = dialog.showMessageBoxSync(BrowserWindow.getFocusedWindow(), { + type: "error", + title: "Discord RPC Error", + message: `Oops! An Error occured while ${status} Discord RPC.`, + buttons: ["Close", "Disable Discord RPC"], + }); + + if (rpcerror === 1) { + store.set("discordrpcstatus", "false"); + } +} + async function clearActivity() { await client.user?.clearActivity().catch((err) => { - dialog.showMessageBox(BrowserWindow.getFocusedWindow(), { - type: "error", - title: "Discord RPC Error", - message: "Oops! An Error occured while clearing Discord RPC.", - buttons: ["OK"], - }); + rpcError("clearing"); + console.error(err); }); } @@ -28,24 +38,14 @@ async function setActivity(details) { largeImageText: "MS-365-Electron", }) .catch((err) => { - dialog.showMessageBox(BrowserWindow.getFocusedWindow(), { - type: "error", - title: "Discord RPC Error", - message: "Oops! An Error occured while setting Discord RPC.", - buttons: ["OK"], - }); + rpcError("setting"); console.error(err); }); } async function loginToRPC() { await client.login().catch((err) => { - dialog.showMessageBox(BrowserWindow.getFocusedWindow(), { - type: "error", - title: "Discord RPC Error", - message: "Oops! An Error occured while connecting to Discord RPC.", - buttons: ["OK"], - }); + rpcError("logging into"); console.error(err); }); }