chore: simplify syncing of challenge 'Completed' field
All checks were successful
Build / build (pull_request) Successful in 58s

Challenges are mostly client-authoritative, so narrow the special-casing to "challengeRewards".
This commit is contained in:
Sainan 2025-08-11 02:29:26 +02:00
parent a4922d4c35
commit ed066a4ca0

View File

@ -1980,18 +1980,21 @@ export const addChallenges = async (
dbChallenge.Completed ??= []; dbChallenge.Completed ??= [];
for (const completion of Completed!) { for (const completion of Completed!) {
if (dbChallenge.Completed.indexOf(completion) == -1) { if (dbChallenge.Completed.indexOf(completion) == -1) {
dbChallenge.Completed.push(completion);
if (completion == "challengeRewards") { if (completion == "challengeRewards") {
if (Name in challengeRewardsInboxMessages) { if (Name in challengeRewardsInboxMessages) {
await createMessage(account._id, [challengeRewardsInboxMessages[Name]]); await createMessage(account._id, [challengeRewardsInboxMessages[Name]]);
dbChallenge.Completed.push(completion);
// Would love to somehow let the client know about inbox or inventory changes, but there doesn't seem to anything for updateChallengeProgress. // Would love to somehow let the client know about inbox or inventory changes, but there doesn't seem to anything for updateChallengeProgress.
continue; continue;
} }
}
logger.warn(`ignoring unknown challenge completion`, { challenge: Name, completion }); logger.warn(`ignoring unknown challenge completion`, { challenge: Name, completion });
dbChallenge.Completed = [];
} }
} }
} }
} else {
dbChallenge.Completed = Completed;
}
} }
const affiliationMods: IAffiliationMods[] = []; const affiliationMods: IAffiliationMods[] = [];