Server/project/src/helpers/SecureContainerHelper.ts

41 lines
1.1 KiB
TypeScript
Raw Normal View History

2023-03-03 16:23:46 +01:00
import { inject, injectable } from "tsyringe";
import { ItemHelper } from "@spt-aki/helpers/ItemHelper";
import { Item } from "@spt-aki/models/eft/common/tables/IItem";
2023-03-03 16:23:46 +01:00
export interface OwnerInventoryItems
{
from: Item[];
to: Item[];
sameInventory: boolean;
isMail: boolean;
2023-03-03 16:23:46 +01:00
}
@injectable()
export class SecureContainerHelper
{
constructor(@inject("ItemHelper") protected itemHelper: ItemHelper)
{}
2023-03-03 16:23:46 +01: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
*/
2023-03-03 16:23:46 +01:00
public getSecureContainerItems(items: Item[]): string[]
{
const secureContainer = items.find((x) => x.slotId === "SecuredContainer");
2023-03-03 16:23:46 +01:00
// No container found, drop out
if (!secureContainer)
{
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 16:23:46 +01:00
}
}