mirror of
https://github.com/agam778/MS-365-Electron.git
synced 2026-02-17 09:02:10 +00:00
58 lines
1.2 KiB
JavaScript
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,
|
|
};
|