diff --git a/src/services/inventoryService.ts b/src/services/inventoryService.ts index 60acf7e6..99d189d0 100644 --- a/src/services/inventoryService.ts +++ b/src/services/inventoryService.ts @@ -82,10 +82,10 @@ export const combineInventoryChanges = (InventoryChanges: IInventoryChanges, del for (const item of right) { left.push(item); } - } else { + } else if (typeof delta[key] == "object") { console.assert(key.substring(-3) == "Bin"); const left = InventoryChanges[key] as IBinChanges; - const right: IBinChanges = delta[key] as IBinChanges; + const right: IBinChanges = delta[key]; left.count += right.count; left.platinum += right.platinum; left.Slots += right.Slots; @@ -93,6 +93,8 @@ export const combineInventoryChanges = (InventoryChanges: IInventoryChanges, del left.Extra ??= 0; left.Extra += right.Extra; } + } else { + logger.warn(`inventory change not merged: ${key}`); } } }; @@ -477,7 +479,11 @@ export const updateSlots = async (accountId: string, slotName: SlotNames, slotAm await inventory.save(); }; -export const updateCurrency = async (price: number, usePremium: boolean, accountId: string) => { +export const updateCurrency = async ( + price: number, + usePremium: boolean, + accountId: string +): Promise => { if (usePremium ? config.infinitePlatinum : config.infiniteCredits) { return {}; } diff --git a/src/types/purchaseTypes.ts b/src/types/purchaseTypes.ts index 67b96419..83e5fb0d 100644 --- a/src/types/purchaseTypes.ts +++ b/src/types/purchaseTypes.ts @@ -19,6 +19,10 @@ export interface IPurchaseParams { export type IInventoryChanges = { [_ in SlotNames]?: IBinChanges; +} & { + RegularCredits?: number; + PremiumCredits?: number; + PremiumCreditsFree?: number; } & Record; export interface IPurchaseResponse {