XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFESpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/XFESpaceNinjaServer

chore: improve getOfferId to avoid unwanted collisions (#4445)

Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/4445 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>

87c4ea91
Sainan <63328889+Sainan@users.noreply.github.com>
提交于

代码差异

1 个文件 +33 -4
Modified src/services/serversideVendorsService.ts +33 -4
@@ -228,16 +228,45 @@ const getCycleDurationRange = (manifest: IVendor): IRange | undefined => {
228 228 return res.maxValue != 0 ? res : undefined;
229 229 };
230 230
231 type TOfferId = string;
231 interface IOfferIdentifiers {
232 storeItem: string;
233 quantity: number;
234 firstItemPriceType?: string;
235 }
232 236
233 const getOfferId = (offer: IVendorOffer | IItemManifest): TOfferId => {
237 const getOfferIdentifiers = (offer: IVendorOffer | IItemManifest): IOfferIdentifiers => {
238 let obj: IOfferIdentifiers;
234 239 if ("storeItem" in offer) {
235 240 // IVendorOffer
236 return offer.storeItem + "x" + offer.quantity;
241 obj = {
242 storeItem: offer.storeItem,
243 quantity: offer.quantity
244 };
245 if ((offer.itemPrices?.length ?? 0) > 0) {
246 obj.firstItemPriceType = offer.itemPrices![0].ItemType;
247 }
237 248 } else {
238 249 // IItemManifest
239 return offer.StoreItem + "x" + offer.QuantityMultiplier;
250 obj = {
251 storeItem: offer.StoreItem,
252 quantity: offer.QuantityMultiplier
253 };
254 if ((offer.ItemPrices?.length ?? 0) > 0) {
255 obj.firstItemPriceType = offer.ItemPrices![0].ItemType;
256 }
257 }
258 return obj;
259 };
260
261 type TOfferId = string;
262
263 const getOfferId = (offer: IVendorOffer | IItemManifest): TOfferId => {
264 const { storeItem, quantity, firstItemPriceType } = getOfferIdentifiers(offer);
265 let str = storeItem + "x" + quantity;
266 if (firstItemPriceType) {
267 str += ":" + firstItemPriceType;
240 268 }
269 return str;
241 270 };
242 271
243 272 let vendorManifestsUsingFullStock = false;