Server/project/src/helpers/SecureContainerHelper.ts

35 lines
1.1 KiB
TypeScript
Raw Normal View History

import { ItemHelper } from "@spt/helpers/ItemHelper";
import { IItem } from "@spt/models/eft/common/tables/IItem";
import { inject, injectable } from "tsyringe";
2023-03-03 15:23:46 +00:00
export interface IOwnerInventoryItems {
from: IItem[];
to: IItem[];
sameInventory: boolean;
isMail: boolean;
2023-03-03 15:23:46 +00:00
}
@injectable()
export class SecureContainerHelper {
constructor(@inject("ItemHelper") protected itemHelper: ItemHelper) {}
2023-03-03 15:23:46 +00:00
/**
* Get an array of the item IDs (NOT tpls) inside a secure container
* @param items Inventory items to look for secure container in
* @returns Array of ids
*/
public getSecureContainerItems(items: IItem[]): string[] {
const secureContainer = items.find((x) => x.slotId === "SecuredContainer");
2023-03-03 15:23:46 +00:00
// No container found, drop out
if (!secureContainer) {
2023-03-03 15:23:46 +00:00
return [];
}
const itemsInSecureContainer = this.itemHelper.findAndReturnChildrenByItems(items, secureContainer._id);
// Return all items returned and exclude the secure container item itself
return itemsInSecureContainer.filter((x) => x !== secureContainer._id);
2023-03-03 15:23:46 +00:00
}
}