Compare commits
2 Commits
94fa7e7bd8
...
ae566f09a0
Author | SHA1 | Date | |
---|---|---|---|
ae566f09a0 | |||
01905d695a |
76
main.js
76
main.js
@ -68,26 +68,62 @@ function startOsuStatus() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const windowTitle = firstInstance.processTitle;
|
const windowTitle = firstInstance.processTitle;
|
||||||
if (lastOsuStatus == windowTitle) return;
|
|
||||||
lastOsuStatus = windowTitle;
|
lastOsuStatus = windowTitle;
|
||||||
if (!windowTitle.includes("-")) {
|
const currentStatusRequest = await fetch("https://api.ez-pp.farm/get_player_status?name=" + currentUser.username);
|
||||||
richPresence.updateStatus({
|
const currentStatus = await currentStatusRequest.json();
|
||||||
details: undefined,
|
|
||||||
state: "Idle...",
|
if (!("player_status" in currentStatus)) return;
|
||||||
});
|
if (!("status" in currentStatus.player_status)) return;
|
||||||
} else {
|
|
||||||
const components = windowTitle.split(" - ");
|
let details = "Idle...";
|
||||||
const splitTitle = [components.shift(), components.join(" - ")];
|
let infoText = currentStatus.player_status.status.info_text.length > 0 ? currentStatus.player_status.status.info_text : " ";
|
||||||
const currentMap = splitTitle[1];
|
|
||||||
if (!currentMap.endsWith(".osu")) {
|
switch (currentStatus.player_status.status.action) {
|
||||||
richPresence.updateStatus({
|
case 1:
|
||||||
state: "Playing...",
|
details = "AFK..."
|
||||||
details: currentMap,
|
infoText = " ";
|
||||||
});
|
break;
|
||||||
}
|
case 2:
|
||||||
|
details = "Playing...";
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
details = "Editing...";
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
details = "Modding..."
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
details = "Multiplayer: Selecting a Beatmap...";
|
||||||
|
infoText = " ";
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
details = "Watching...";
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
details = "Testing...";
|
||||||
|
break;
|
||||||
|
case 9:
|
||||||
|
details = "Submitting...";
|
||||||
|
break;
|
||||||
|
case 11:
|
||||||
|
details = "Multiplayer: Idle...";
|
||||||
|
infoText = " ";
|
||||||
|
break;
|
||||||
|
case 12:
|
||||||
|
details = "Multiplayer: Playing...";
|
||||||
|
break;
|
||||||
|
case 13:
|
||||||
|
details = "Browsing osu!direct...";
|
||||||
|
infoText = " ";
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
richPresence.updateStatus({
|
||||||
|
details,
|
||||||
|
state: infoText
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}, 1000);
|
}, 2500);
|
||||||
}
|
}
|
||||||
|
|
||||||
function stopOsuStatus() {
|
function stopOsuStatus() {
|
||||||
@ -421,12 +457,13 @@ function registerIPCPipes() {
|
|||||||
|
|
||||||
const onExitHook = () => {
|
const onExitHook = () => {
|
||||||
mainWindow.show();
|
mainWindow.show();
|
||||||
|
mainWindow.focus();
|
||||||
stopOsuStatus();
|
stopOsuStatus();
|
||||||
richPresence.updateVersion();
|
richPresence.updateVersion();
|
||||||
richPresence.updateStatus({
|
richPresence.updateStatus({
|
||||||
state: "Idle in Launcher...",
|
state: "Idle in Launcher...",
|
||||||
details: undefined,
|
details: undefined
|
||||||
});
|
})
|
||||||
mainWindow.webContents.send("ezpplauncher:launchstatus", {
|
mainWindow.webContents.send("ezpplauncher:launchstatus", {
|
||||||
status: "Waiting for cleanup...",
|
status: "Waiting for cleanup...",
|
||||||
});
|
});
|
||||||
@ -441,6 +478,7 @@ function registerIPCPipes() {
|
|||||||
mainWindow.hide();
|
mainWindow.hide();
|
||||||
startOsuStatus();
|
startOsuStatus();
|
||||||
|
|
||||||
|
|
||||||
/* mainWindow.webContents.send("ezpplauncher:launchprogress", {
|
/* mainWindow.webContents.send("ezpplauncher:launchprogress", {
|
||||||
progress: 0,
|
progress: 0,
|
||||||
});
|
});
|
||||||
|
56
src/discord/richPresence.js
Normal file
56
src/discord/richPresence.js
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
const DiscordRPC = require("discord-auto-rpc");
|
||||||
|
const { appName, appVersion } = require("../../appInfo");
|
||||||
|
|
||||||
|
const clientId = "1032772293220384808";
|
||||||
|
let richPresence;
|
||||||
|
|
||||||
|
let currentStatus = {
|
||||||
|
state: " ",
|
||||||
|
details: "Idle in Launcher...",
|
||||||
|
startTimestamp: new Date(),
|
||||||
|
largeImageKey: "ezppfarm",
|
||||||
|
largeImageText: `${appName} ${appVersion}`,
|
||||||
|
smallImageKey: " ",
|
||||||
|
smallImageText: " ",
|
||||||
|
buttons: [
|
||||||
|
{
|
||||||
|
label: "Download the Launcher",
|
||||||
|
url: "https://git.ez-pp.farm/EZPPFarm/EZPPLauncher/releases/latest"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Join EZPPFarm",
|
||||||
|
url: "https://ez-pp.farm/discord"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
instance: false
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
connect: () => {
|
||||||
|
if (!richPresence) {
|
||||||
|
richPresence = new DiscordRPC.AutoClient({ transport: "ipc" });
|
||||||
|
richPresence.endlessLogin({ clientId });
|
||||||
|
richPresence.once("ready", () => {
|
||||||
|
setInterval(() => {
|
||||||
|
richPresence.setActivity(currentStatus);
|
||||||
|
}, 2500)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
disconnect: async () => {
|
||||||
|
if (richPresence) {
|
||||||
|
await richPresence.clearActivity();
|
||||||
|
await richPresence.destroy();
|
||||||
|
richPresence = null;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
updateStatus: ({ state, details }) => {
|
||||||
|
currentStatus.state = state ?? " ";
|
||||||
|
currentStatus.details = details ?? " ";
|
||||||
|
},
|
||||||
|
updateVersion: (osuVersion) => {
|
||||||
|
currentStatus.smallImageKey = osuVersion ? "osu" : " ";
|
||||||
|
currentStatus.smallImageText = osuVersion ? `osu! ${osuVersion}` : " ";
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user