Comment and property name cleanup inside removeDanglingTaskConditionCounters()
This commit is contained in:
parent
98b0a579b3
commit
a742beeae9
@ -509,33 +509,39 @@ export class ProfileFixerService
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Repeatable quests leave behind TaskConditionCounter objects that make the profile bloat with time, remove them
|
||||||
|
* @param pmcProfile Player profile to check
|
||||||
|
*/
|
||||||
protected removeDanglingTaskConditionCounters(pmcProfile: IPmcData): void
|
protected removeDanglingTaskConditionCounters(pmcProfile: IPmcData): void
|
||||||
{
|
{
|
||||||
if (pmcProfile.TaskConditionCounters)
|
if (pmcProfile.TaskConditionCounters)
|
||||||
{
|
{
|
||||||
const counterKeysToRemove: string[] = [];
|
const taskConditionKeysToRemove: string[] = [];
|
||||||
const activeQuests = this.getActiveRepeatableQuests(pmcProfile.RepeatableQuests);
|
const activeRepeatableQuests = this.getActiveRepeatableQuests(pmcProfile.RepeatableQuests);
|
||||||
const achievements = this.databaseServer.getTables().templates.achievements;
|
const achievements = this.databaseServer.getTables().templates.achievements;
|
||||||
|
|
||||||
for (const [key, backendCounter] of Object.entries(pmcProfile.TaskConditionCounters))
|
// Loop over TaskConditionCounters objects and add once we want to remove to counterKeysToRemove
|
||||||
|
for (const [key, taskConditionCounter] of Object.entries(pmcProfile.TaskConditionCounters))
|
||||||
{
|
{
|
||||||
if (pmcProfile.RepeatableQuests && activeQuests.length > 0)
|
// Only check if profile has repeatable quests
|
||||||
|
if (pmcProfile.RepeatableQuests && activeRepeatableQuests.length > 0)
|
||||||
{
|
{
|
||||||
const existsInActiveRepeatableQuests = activeQuests.some((x) => x._id === backendCounter.sourceId);
|
const existsInActiveRepeatableQuests = activeRepeatableQuests.some((quest) => quest._id === taskConditionCounter.sourceId);
|
||||||
const existsInQuests = pmcProfile.Quests.some((q) => q.qid === backendCounter.sourceId);
|
const existsInQuests = pmcProfile.Quests.some((quest) => quest.qid === taskConditionCounter.sourceId);
|
||||||
const isAchievementTracker = achievements.some((a) => a.id === backendCounter.sourceId);
|
const isAchievementTracker = achievements.some((quest) => quest.id === taskConditionCounter.sourceId);
|
||||||
|
|
||||||
// if BackendCounter is neither in activeQuests, quests or achievements - it's stale and should be cleaned up
|
// If task conditions id is neither in activeQuests, quests or achievements - it's stale and should be cleaned up
|
||||||
if (!(existsInActiveRepeatableQuests || existsInQuests || isAchievementTracker))
|
if (!(existsInActiveRepeatableQuests || existsInQuests || isAchievementTracker))
|
||||||
{
|
{
|
||||||
counterKeysToRemove.push(key);
|
taskConditionKeysToRemove.push(key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const counterKeyToRemove of counterKeysToRemove)
|
for (const counterKeyToRemove of taskConditionKeysToRemove)
|
||||||
{
|
{
|
||||||
this.logger.debug(`Removed ${counterKeyToRemove} backend count object`);
|
this.logger.debug(`Removed ${counterKeyToRemove} TaskConditionCounter object`);
|
||||||
delete pmcProfile.TaskConditionCounters[counterKeyToRemove];
|
delete pmcProfile.TaskConditionCounters[counterKeyToRemove];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user