Make players PMC equipment id unique on profile creation

This commit is contained in:
Dev 2024-01-17 15:05:01 +00:00
parent 43699d6416
commit 43cbe45376

View File

@ -157,6 +157,8 @@ export class ProfileController
pmcData.CoopExtractCounts = {};
pmcData.Achievements = {};
this.updateInventoryEquipmentId(pmcData);
if (!pmcData.UnlockedInfo)
{
pmcData.UnlockedInfo = { unlockedProductionRecipe: [] };
@ -227,6 +229,31 @@ export class ProfileController
return pmcData._id;
}
/**
* make profiles pmcData.Inventory.equipment unique
* @param pmcData Profile to update
*/
protected updateInventoryEquipmentId(pmcData: IPmcData): void
{
const oldEquipmentId = pmcData.Inventory.equipment;
pmcData.Inventory.equipment = this.hashUtil.generate();
for (const item of pmcData.Inventory.items)
{
if (item.parentId === oldEquipmentId)
{
item.parentId = pmcData.Inventory.equipment;
continue;
}
if (item._id === oldEquipmentId)
{
item._id = pmcData.Inventory.equipment;
}
}
}
/**
* Delete a profile
* @param sessionID Id of profile to delete