From 7957dc1e24398c9ae27ad9968d6d91728f241a8e Mon Sep 17 00:00:00 2001 From: nyaoouo <64143453+nyaoouo@users.noreply.github.com> Date: Tue, 10 Jun 2025 19:51:00 +0800 Subject: [PATCH] Remove booster if ExpiryDate lower than current time --- src/controllers/custom/setBoosterController.ts | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/controllers/custom/setBoosterController.ts b/src/controllers/custom/setBoosterController.ts index f19a3093..ceb45e30 100644 --- a/src/controllers/custom/setBoosterController.ts +++ b/src/controllers/custom/setBoosterController.ts @@ -23,13 +23,21 @@ export const setBoosterController: RequestHandler = async (req, res) => { res.status(400).send("Invalid ItemType provided."); return; } - // Remove if ExpiryDate lower than current time? + const now = Math.floor(Date.now() / 1000); for (const { ItemType, ExpiryDate } of requests) { - const boosterItem = boosters.find(item => item.ItemType === ItemType); - if (boosterItem) { - boosterItem.ExpiryDate = ExpiryDate; + if (ExpiryDate > now) { + // remove expired boosters + const index = boosters.findIndex(item => item.ItemType === ItemType); + if (index !== -1) { + boosters.splice(index, 1); + } } else { - boosters.push({ ItemType, ExpiryDate }); + const boosterItem = boosters.find(item => item.ItemType === ItemType); + if (boosterItem) { + boosterItem.ExpiryDate = ExpiryDate; + } else { + boosters.push({ ItemType, ExpiryDate }); + } } } await inventory.save();