mirror of
https://github.com/zkldi/Tachi.git
synced 2026-10-05 13:28:08 +03:00
fix bugs related to bppb
This commit is contained in:
@@ -7,12 +7,13 @@ export async function IIDXMergeFn(
|
||||
scorePB: ScoreDocument<"iidx:SP" | "iidx:DP">,
|
||||
lampPB: ScoreDocument<"iidx:SP" | "iidx:DP">,
|
||||
logger: KtLogger
|
||||
) {
|
||||
): Promise<boolean> {
|
||||
// bad+poor PB document. This is a weird, third indepdenent metric that IIDX players sometimes care about.
|
||||
let bpPB = (await db.scores.findOne(
|
||||
{
|
||||
userID: scorePB.userID,
|
||||
chartID: scorePB.chartID,
|
||||
"scoreData.hitMeta.bp": { $exists: true },
|
||||
},
|
||||
{
|
||||
sort: {
|
||||
@@ -22,27 +23,28 @@ export async function IIDXMergeFn(
|
||||
)) as ScoreDocument<"iidx:SP" | "iidx:DP">;
|
||||
|
||||
if (!bpPB) {
|
||||
logger.warn(
|
||||
`Could not find BP PB for ${scorePB.userID} ${scorePB.chartID} in PB joining.`,
|
||||
logger.verbose(
|
||||
`Could not find BP PB for ${scorePB.userID} ${scorePB.chartID} in PB joining. User likely has no scores with BP defined.`,
|
||||
{ pbDoc }
|
||||
);
|
||||
return;
|
||||
// this isn't actually an error! we just don't have to do anything.
|
||||
return true;
|
||||
}
|
||||
|
||||
// by default scorePB is chosen for hitMeta fields, so, we can skip any assignments here by returning here.
|
||||
if (bpPB.scoreID === scorePB.scoreID) {
|
||||
logger.debug(`Skipped merging BP PB as scorePB was also BP PB.`);
|
||||
return;
|
||||
return true;
|
||||
} else if (bpPB.scoreID === lampPB.scoreID) {
|
||||
pbDoc.scoreData.hitMeta.bp = lampPB.scoreData.hitMeta.bp;
|
||||
// dfgmdfgfgdgf
|
||||
logger.verbose(`Skipped adding BP PB as composedFrom because lampPB was also BP PB.`);
|
||||
return;
|
||||
return true;
|
||||
}
|
||||
|
||||
pbDoc.scoreData.hitMeta.bp = bpPB.scoreData.hitMeta.bp;
|
||||
|
||||
pbDoc.composedFrom.other = [{ name: "Best BP", scoreID: bpPB.scoreID }];
|
||||
|
||||
return;
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user