diff --git a/main.js b/main.js index 3bc0439..c44438b 100644 --- a/main.js +++ b/main.js @@ -7,7 +7,7 @@ const fs = require("fs"); const { logger, logSessionStart, logSessionEnd, logDir } = require("./server/logger"); const { AutoUpdater } = require("./server/update.js"); const { configFeatures } = require("./config.js"); -const { startRPC } = require("./server/discordRPC"); +const { startRPC, stopRPC} = require("./server/discordRPC"); let mainWindow; const logsFolderPath = logDir; @@ -264,4 +264,7 @@ app.on("window-all-closed", () => { if (process.platform !== "darwin") app.quit(); }); -app.on("before-quit", () => logSessionEnd()); +app.on("before-quit", () => { + logSessionEnd() + stopRPC() +}); diff --git a/server/discordRPC.js b/server/discordRPC.js index 2a03678..12adea2 100644 --- a/server/discordRPC.js +++ b/server/discordRPC.js @@ -17,7 +17,7 @@ function startRPC() { details: `Open Source Download Tools - ${config.version}`, state: "masteracnolo.github.io/FreedomLoader", }; - + rpc.clearActivity() rpc.setActivity(presence); // Met à jour la présence toutes les 15s @@ -26,27 +26,26 @@ function startRPC() { }, 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 => { 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};