Fix: Improve InventoryController.toggleItem()
to handle items without a upd property
Rewrote loop to use .find() Added comments + logging
This commit is contained in:
parent
c9c25d6fbb
commit
27a0df2d92
@ -379,6 +379,10 @@ export class InventoryController
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Toggles "Toggleable" items like night vision goggles and face shields.
|
* Toggles "Toggleable" items like night vision goggles and face shields.
|
||||||
|
* @param pmcData player profile
|
||||||
|
* @param body Toggle request
|
||||||
|
* @param sessionID Session id
|
||||||
|
* @returns IItemEventRouterResponse
|
||||||
*/
|
*/
|
||||||
public toggleItem(pmcData: IPmcData, body: IInventoryToggleRequestData, sessionID: string): IItemEventRouterResponse
|
public toggleItem(pmcData: IPmcData, body: IInventoryToggleRequestData, sessionID: string): IItemEventRouterResponse
|
||||||
{
|
{
|
||||||
@ -388,16 +392,24 @@ export class InventoryController
|
|||||||
pmcData = this.profileHelper.getScavProfile(sessionID);
|
pmcData = this.profileHelper.getScavProfile(sessionID);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const item of pmcData.Inventory.items)
|
const itemToToggle = pmcData.Inventory.items.find(x => x._id === body.item);
|
||||||
|
if (itemToToggle)
|
||||||
{
|
{
|
||||||
if (item._id && item._id === body.item)
|
if (!itemToToggle.upd)
|
||||||
{
|
{
|
||||||
item.upd.Togglable = { On: body.value };
|
this.logger.warning(`Item with _id: ${itemToToggle._id} is missing a upd object, adding`);
|
||||||
return this.eventOutputHolder.getOutput(sessionID);
|
itemToToggle.upd = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
itemToToggle.upd.Togglable = { On: body.value };
|
||||||
|
|
||||||
|
return this.eventOutputHolder.getOutput(sessionID);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.logger.warning(`Unable to find inventory item with _id to toggle: ${body.item}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
//return "";
|
|
||||||
return {
|
return {
|
||||||
warnings: [],
|
warnings: [],
|
||||||
profileChanges: {}
|
profileChanges: {}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user