Skip to content

Commit

Permalink
fix: small fix to show the correct milestone
Browse files Browse the repository at this point in the history
  • Loading branch information
aumer-amr committed Sep 19, 2024
1 parent aaa544e commit f8f9cdc
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 91 deletions.
78 changes: 0 additions & 78 deletions apps/satisfactory/src/checks/queryserverstate.js

This file was deleted.

36 changes: 23 additions & 13 deletions apps/satisfactory/src/checks/queryserverstate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ import NodeCache from "node-cache";
const cache = new NodeCache({ stdTTL: 5 });
const progressMessageId: string | undefined = process.env.DISCORD_PROGRESS_MESSAGE_ID;
const gameMessageId: string | undefined = process.env.DISCORD_GAME_MESSAGE_ID;
const unknownType = 'Unknown';

let lastPhase: number;
let lastTechTier: number;
let lastMileStone: string;
let lastPlayersConnected: number;

async function getServerState() {
const cachedState = cache.get('serverState');
Expand All @@ -21,20 +21,30 @@ async function getServerState() {
const body = prepareBody('QueryServerState', null);
const result = await doCall(body);

if (result === null) {
return null;
}

cache.set('serverState', result, 5);

return result
}

export async function progressCheck() {
const serverState = await getServerState();
const lastUpdated = new Date();

if (serverState === null) {
await updateInfo('Server progress', { Phase: unknownType, Tier: unknownType, Milestone: unknownType, LastUpdated: lastUpdated }, 'Red', progressMessageId);
return;
}

const phase = serverState.serverGameState.gamePhase.replace(/.*Phase_([0-9]).*/, '$1');
const techTier = serverState.serverGameState.techTier;
let mileStone = serverState.serverGameState.activeSchematic.substr(serverState.serverGameState.activeSchematic.lastIndexOf('.') + 1);
mileStone = mileStone.replace(/[^a-zA-Z0-9-_]/g, '');

if (mileStone) {
if (mileStone === 'None') {
mileStone = getDisplayName(LangKeys.Schematics, mileStone);
}

Expand All @@ -54,30 +64,30 @@ export async function progressCheck() {

if (lastMileStone !== mileStone) {
if (lastMileStone) {
await sendMessage('Milestone change', `Milestone changed from ${lastMileStone} to ${mileStone}, either completed or just switched`);
let message = `Milestone changed from ${lastMileStone} to ${mileStone}`;
if (mileStone === 'None') {
message = `Milestone ${lastMileStone} completed`;
}
await sendMessage('Milestone change', message);
}
lastMileStone = mileStone;
}

const lastUpdated = new Date();

await updateInfo('Server progress', { Phase: phase, Tier: techTier, Milestone: mileStone, LastUpdated: lastUpdated }, 'Blue', progressMessageId);
}

export async function gameCheck() {
const serverState = await getServerState();

const connected = serverState.serverGameState.numConnectedPlayers;
const duration = serverState.serverGameState.totalGameDuration;
const lastUpdated = new Date();

if (lastPlayersConnected !== connected) {
if (lastPlayersConnected) {
await sendMessage('Player count change', `Player count changed from ${lastPlayersConnected} to ${connected}`);
}
lastPlayersConnected = connected;
if (serverState === null) {
await updateInfo('Game state', { Connected: 0, Duration: unknownType, LastUpdated: lastUpdated }, 'Red', gameMessageId);
return;
}

const connected = serverState.serverGameState.numConnectedPlayers;
const duration = serverState.serverGameState.totalGameDuration;

await updateInfo('Game state', { Connected: connected, Duration: formatTime(duration), LastUpdated: lastUpdated }, 'Blue', gameMessageId);
}

Expand Down

0 comments on commit f8f9cdc

Please sign in to comment.