Fix: Discord RPC not Stoping #26

This commit is contained in:
MasterAcnolo
2026-01-25 17:32:29 +01:00
parent 29ca2ea496
commit dedf10c6b3
2 changed files with 24 additions and 22 deletions

View File

@@ -7,7 +7,7 @@ const fs = require("fs");
const { logger, logSessionStart, logSessionEnd, logDir } = require("./server/logger"); const { logger, logSessionStart, logSessionEnd, logDir } = require("./server/logger");
const { AutoUpdater } = require("./server/update.js"); const { AutoUpdater } = require("./server/update.js");
const { configFeatures } = require("./config.js"); const { configFeatures } = require("./config.js");
const { startRPC } = require("./server/discordRPC"); const { startRPC, stopRPC} = require("./server/discordRPC");
let mainWindow; let mainWindow;
const logsFolderPath = logDir; const logsFolderPath = logDir;
@@ -264,4 +264,7 @@ app.on("window-all-closed", () => {
if (process.platform !== "darwin") app.quit(); if (process.platform !== "darwin") app.quit();
}); });
app.on("before-quit", () => logSessionEnd()); app.on("before-quit", () => {
logSessionEnd()
stopRPC()
});

View File

@@ -17,7 +17,7 @@ function startRPC() {
details: `Open Source Download Tools - ${config.version}`, details: `Open Source Download Tools - ${config.version}`,
state: "masteracnolo.github.io/FreedomLoader", state: "masteracnolo.github.io/FreedomLoader",
}; };
rpc.clearActivity()
rpc.setActivity(presence); rpc.setActivity(presence);
// Met à jour la présence toutes les 15s // Met à jour la présence toutes les 15s
@@ -26,27 +26,26 @@ function startRPC() {
}, 15000); }, 15000);
}); });
async function cleanExit() {
try {
if (intervalId) clearInterval(intervalId);
if (rpc && rpc.transport) {
await rpc.destroy();
}
} catch (err) {
logger.error("Error while closing the RPC:", err);
} finally {
process.exit();
}
}
process.on("exit", cleanExit);
process.on("SIGINT", cleanExit);
process.on("SIGTERM", cleanExit);
rpc.login({ clientId }).catch(err => { rpc.login({ clientId }).catch(err => {
logger.error("Unable to connect to the RPC:", err); logger.error("Unable to connect to the RPC:", err);
}); });
} }
module.exports = { startRPC }; async function stopRPC(){
try {
if (intervalId) clearInterval(intervalId);
if (rpc && rpc.transport) {
await rpc.clearActivity()
await rpc.destroy();
} else{
logger.error("Not Able to close RPC")
}
} catch (err) {
logger.error("Error while closing the RPC:", err);
}
}
module.exports = { startRPC, stopRPC};