Files
ms365-electron/app/rpc.js
Agampreet Singh a9d63d7325 Use rpcError function for all RPC related errors
- Also add "Disable Discord RPC" button to the error message
2023-06-11 17:48:30 +05:30

58 lines
1.2 KiB
JavaScript

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) => {
rpcError("clearing");
console.error(err);
});
}
async function setActivity(details) {
if (!client.user) {
await loginToRPC();
}
await client.user
?.setActivity({
details: details,
startTimestamp: Date.now(),
largeImageKey: "icon",
largeImageText: "MS-365-Electron",
})
.catch((err) => {
rpcError("setting");
console.error(err);
});
}
async function loginToRPC() {
await client.login().catch((err) => {
rpcError("logging into");
console.error(err);
});
}
module.exports = {
clearActivity,
setActivity,
loginToRPC,
};