From 292791aca433466c6519c504ee2b6abcb3b9ba3d Mon Sep 17 00:00:00 2001 From: Dev Date: Fri, 13 Oct 2023 16:54:17 +0100 Subject: [PATCH] make `itemHasBaseClass()` more robust against bad input --- project/src/services/ItemBaseClassService.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/project/src/services/ItemBaseClassService.ts b/project/src/services/ItemBaseClassService.ts index 94526069..bc65dc68 100644 --- a/project/src/services/ItemBaseClassService.ts +++ b/project/src/services/ItemBaseClassService.ts @@ -1,6 +1,7 @@ import { inject, injectable } from "tsyringe"; import { ITemplateItem } from "../models/eft/common/tables/ITemplateItem"; +import { BaseClasses } from "../models/enums/BaseClasses"; import { ILogger } from "../models/spt/utils/ILogger"; import { DatabaseServer } from "../servers/DatabaseServer"; import { LocalisationService } from "./LocalisationService"; @@ -83,6 +84,19 @@ export class ItemBaseClassService this.hydrateItemBaseClassCache(); } + if (typeof itemTpl === "undefined") + { + this.logger.warning("Unable to check itemTpl base class as its undefined"); + + return false; + } + + // Edge case - this is the 'root' item that all other items inherit from + if (itemTpl === BaseClasses.ITEM) + { + return false; + } + // No item in cache if (!this.itemBaseClassesCache[itemTpl]) {