返回提交历史
Modified
src/services/inventoryService.ts
+12
-2
XFEstudio/XFESpaceNinjaServer
chore: don't allow credits and platinum to underflow (#3844)
Re #3842 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/3844 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
5a5adb75
代码差异
1 个文件
+12
-2
@@ -1675,15 +1675,25 @@ export const updateCurrency = (
1675
1675
inventory.PremiumCreditsFree += premiumCreditsFreeDelta;
1676
1676
logger.debug(`spending ${-premiumCreditsFreeDelta} starter plat`);
1677
1677
}
1678
if (inventory.PremiumCredits - price < 0) {
1679
throw new Error(
1680
`Cannot subtract ${price} platinum, would be left with ${inventory.PremiumCredits - price}`
1681
);
1682
}
1678
1683
inventoryChanges.PremiumCredits ??= 0;
1679
1684
inventoryChanges.PremiumCredits -= price;
1680
1685
inventory.PremiumCredits -= price;
1681
logger.debug(`currency changes `, { PremiumCredits: -price });
1686
logger.debug(`currency changes`, { PremiumCredits: -price });
1682
1687
} else {
1688
if (inventory.RegularCredits - price < 0) {
1689
throw new Error(
1690
`Cannot subtract ${price} credits, would be left with ${inventory.RegularCredits - price}`
1691
);
1692
}
1683
1693
inventoryChanges.RegularCredits ??= 0;
1684
1694
inventoryChanges.RegularCredits -= price;
1685
1695
inventory.RegularCredits -= price;
1686
logger.debug(`currency changes `, { RegularCredits: -price });
1696
logger.debug(`currency changes`, { RegularCredits: -price });
1687
1697
}
1688
1698
}
1689
1699
return inventoryChanges;