From d69534f51554dd1dfcea0c8ec1a73f0c6c59dff1 Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Fri, 25 Apr 2025 11:09:48 +0200 Subject: [PATCH] fix oid sometimes being malformed --- src/services/rngService.ts | 3 +++ src/services/serversideVendorsService.ts | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/services/rngService.ts b/src/services/rngService.ts index c56837bc..bb9028b2 100644 --- a/src/services/rngService.ts +++ b/src/services/rngService.ts @@ -99,6 +99,9 @@ export class CRng { randomInt(min: number, max: number): number { const diff = max - min; if (diff != 0) { + if (diff < 0) { + throw new Error(`max must be greater than min`); + } if (diff > 0x3fffffff) { throw new Error(`insufficient entropy`); } diff --git a/src/services/serversideVendorsService.ts b/src/services/serversideVendorsService.ts index 7d219eec..62a4a0e0 100644 --- a/src/services/serversideVendorsService.ts +++ b/src/services/serversideVendorsService.ts @@ -246,7 +246,8 @@ const generateVendorManifest = (vendorInfo: IGeneratableVendorInfo): IVendorMani .toString(16) .padStart(8, "0") + vendorInfo._id.$oid.substring(8, 16) + - ((rng.randomInt(0, 0xffff) << 16) | rng.randomInt(0, 0xffff)).toString(16).padStart(8, "0") + rng.randomInt(0, 0xffff).toString(16).padStart(4, "0") + + rng.randomInt(0, 0xffff).toString(16).padStart(4, "0") } }; if (rawItem.numRandomItemPrices) {