From 993b35cf3bdc3433963c6800b695959f055247c4 Mon Sep 17 00:00:00 2001 From: Zamitto <167933696+zamitto@users.noreply.github.com> Date: Sun, 20 Oct 2024 12:48:04 -0300 Subject: [PATCH] feat: adjust rld achievement --- .../achievements/merge-achievements.ts | 2 +- .../achievements/parse-achievement-file.ts | 26 ++++++++++++------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/main/services/achievements/merge-achievements.ts b/src/main/services/achievements/merge-achievements.ts index 7b03723f..367a5550 100644 --- a/src/main/services/achievements/merge-achievements.ts +++ b/src/main/services/achievements/merge-achievements.ts @@ -120,7 +120,7 @@ export const mergeAchievements = async ( const mergedLocalAchievements = unlockedAchievements.concat(newAchievements); - if (game?.remoteId) { + if (game.remoteId) { return HydraApi.put( "/profile/games/achievements", { diff --git a/src/main/services/achievements/parse-achievement-file.ts b/src/main/services/achievements/parse-achievement-file.ts index 9c875a3f..eb6321a3 100644 --- a/src/main/services/achievements/parse-achievement-file.ts +++ b/src/main/services/achievements/parse-achievement-file.ts @@ -242,15 +242,23 @@ const processRld = (unlockedAchievements: any): UnlockedAchievement[] => { const unlockedAchievement = unlockedAchievements[achievement]; if (unlockedAchievement?.State) { - newUnlockedAchievements.push({ - name: achievement, - unlockTime: - new DataView( - new Uint8Array( - Buffer.from(unlockedAchievement.Time.toString(), "hex") - ).buffer - ).getUint32(0, true) * 1000, - }); + const unlocked = new DataView( + new Uint8Array( + Buffer.from(unlockedAchievement.State.toString(), "hex") + ).buffer + ).getUint32(0, true); + + if (unlocked === 1) { + newUnlockedAchievements.push({ + name: achievement, + unlockTime: + new DataView( + new Uint8Array( + Buffer.from(unlockedAchievement.Time.toString(), "hex") + ).buffer + ).getUint32(0, true) * 1000, + }); + } } }