fix: handle DuviriInfo being absent from inventory (#1926)
Closes #1917 Reviewed-on: OpenWF/SpaceNinjaServer#1926 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									3de68e51d5
								
							
						
					
					
						commit
						660768b53b
					
				@ -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();
 | 
			
		||||
 | 
			
		||||
@ -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,
 | 
			
		||||
 | 
			
		||||
@ -601,7 +601,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;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
@ -202,7 +202,7 @@ export interface IInventoryClient extends IDailyAffiliations, InventoryClientEqu
 | 
			
		||||
    OperatorLoadOuts: IOperatorConfigClient[];
 | 
			
		||||
    KahlLoadOuts: IOperatorConfigClient[];
 | 
			
		||||
 | 
			
		||||
    DuviriInfo: IDuviriInfo;
 | 
			
		||||
    DuviriInfo?: IDuviriInfo;
 | 
			
		||||
    Mailbox?: IMailboxClient;
 | 
			
		||||
    SubscribedToEmails: number;
 | 
			
		||||
    Created: IMongoDate;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user