fix: handle DuviriInfo being absent from inventory
All checks were successful
Build / build (push) Successful in 1m33s
Build / build (pull_request) Successful in 1m34s

This commit is contained in:
Sainan 2025-04-29 21:48:35 +02:00
parent 9468768947
commit fa96ccc983
4 changed files with 12 additions and 5 deletions

View File

@ -106,7 +106,14 @@ export const inventoryController: RequestHandler = async (request, response) =>
const currentDuviriMood = Math.trunc(Date.now() / 7200000);
if (lastSyncDuviriMood != currentDuviriMood) {
logger.debug(`refreshing duviri seed`);
inventory.DuviriInfo.Seed = generateRewardSeed();
if (!inventory.DuviriInfo) {
inventory.DuviriInfo = {
Seed: generateRewardSeed(),
NumCompletions: 0
};
} else {
inventory.DuviriInfo.Seed = generateRewardSeed();
}
}
}
inventory.LastInventorySync = new Types.ObjectId();

View File

@ -391,8 +391,8 @@ MailboxSchema.set("toJSON", {
const DuviriInfoSchema = new Schema<IDuviriInfo>(
{
Seed: BigInt,
NumCompletions: { type: Number, default: 0 }
Seed: { type: BigInt, required: true },
NumCompletions: { type: Number, required: true }
},
{
_id: false,

View File

@ -611,7 +611,7 @@ export const addMissionInventoryUpdates = async (
case "duviriCaveOffers": {
// Duviri cave offers (generated with the duviri seed) change after completing one of its game modes (not when aborting).
if (inventoryUpdates.MissionStatus != "GS_QUIT") {
inventory.DuviriInfo.Seed = generateRewardSeed();
inventory.DuviriInfo!.Seed = generateRewardSeed();
}
break;
}

View File

@ -202,7 +202,7 @@ export interface IInventoryClient extends IDailyAffiliations, InventoryClientEqu
OperatorLoadOuts: IOperatorConfigClient[];
KahlLoadOuts: IOperatorConfigClient[];
DuviriInfo: IDuviriInfo;
DuviriInfo?: IDuviriInfo;
Mailbox?: IMailboxClient;
SubscribedToEmails: number;
Created: IMongoDate;