From f7b4b4f089d9fc653580147ece7b82d94702d714 Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Sat, 3 May 2025 17:24:20 -0700 Subject: [PATCH] fix: dojo time fields for old versions (#1968) Tested this in U27 & U38.5 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1968 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com> --- src/services/guildService.ts | 7 +++++++ src/types/guildTypes.ts | 9 ++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/services/guildService.ts b/src/services/guildService.ts index 61e64465..db6f1525 100644 --- a/src/services/guildService.ts +++ b/src/services/guildService.ts @@ -175,6 +175,9 @@ export const getDojoClient = async ( } if (dojoComponent.CompletionTime) { clientComponent.CompletionTime = toMongoDate(dojoComponent.CompletionTime); + clientComponent.TimeRemaining = Math.trunc( + (dojoComponent.CompletionTime.getTime() - Date.now()) / 1000 + ); if (dojoComponent.CompletionLogPending && Date.now() >= dojoComponent.CompletionTime.getTime()) { const entry = guild.RoomChanges?.find(x => x.componentId.equals(dojoComponent._id)); if (entry) { @@ -210,6 +213,9 @@ export const getDojoClient = async ( continue; } clientComponent.DestructionTime = toMongoDate(dojoComponent.DestructionTime); + clientComponent.DestructionTimeRemaining = Math.trunc( + (dojoComponent.DestructionTime.getTime() - Date.now()) / 1000 + ); } } else { clientComponent.RegularCredits = dojoComponent.RegularCredits; @@ -245,6 +251,7 @@ export const getDojoClient = async ( continue; } clientDeco.CompletionTime = toMongoDate(deco.CompletionTime); + clientDeco.TimeRemaining = Math.trunc((deco.CompletionTime.getTime() - Date.now()) / 1000); } else { clientDeco.RegularCredits = deco.RegularCredits; clientDeco.MiscItems = deco.MiscItems; diff --git a/src/types/guildTypes.ts b/src/types/guildTypes.ts index c0e2cbe3..9dbb0d08 100644 --- a/src/types/guildTypes.ts +++ b/src/types/guildTypes.ts @@ -173,9 +173,11 @@ export interface IDojoComponentClient { Message?: string; RegularCredits?: number; // "Collecting Materials" state: Number of credits that were donated. MiscItems?: IMiscItem[]; // "Collecting Materials" state: Resources that were donated. - CompletionTime?: IMongoDate; + CompletionTime?: IMongoDate; // new versions + TimeRemaining?: number; // old versions RushPlatinum?: number; - DestructionTime?: IMongoDate; + DestructionTime?: IMongoDate; // new versions + DestructionTimeRemaining?: number; // old versions Decos?: IDojoDecoClient[]; DecoCapacity?: number; PaintBot?: IOid; @@ -212,7 +214,8 @@ export interface IDojoDecoClient { Sockets?: number; RegularCredits?: number; MiscItems?: IMiscItem[]; - CompletionTime?: IMongoDate; + CompletionTime?: IMongoDate; // new versions + TimeRemaining?: number; // old versions RushPlatinum?: number; PictureFrameInfo?: IPictureFrameInfo; Pending?: boolean;