diff --git a/bun.lockb b/bun.lockb index a4a7e82..cc078bf 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/projects/backend/src/service/player.service.ts b/projects/backend/src/service/player.service.ts index 6f003d7..7d858c8 100644 --- a/projects/backend/src/service/player.service.ts +++ b/projects/backend/src/service/player.service.ts @@ -95,6 +95,11 @@ export class PlayerService { let daysAgo = 1; // Start from yesterday for (let i = playerRankHistory.length - daysAgo - 1; i >= 0; i--) { const rank = playerRankHistory[i]; + // Skip inactive days + if (rank == 999_999) { + continue; + } + const date = getMidnightAlignedDate(getDaysAgoDate(daysAgo)); player.setStatisticHistory(date, { rank: rank, diff --git a/projects/common/src/score/impl/scoresaber-score.ts b/projects/common/src/score/impl/scoresaber-score.ts index e3bdce9..d2b8520 100644 --- a/projects/common/src/score/impl/scoresaber-score.ts +++ b/projects/common/src/score/impl/scoresaber-score.ts @@ -58,7 +58,7 @@ export function getScoreSaberScoreFromToken( return { leaderboard: "scoresaber", score: token.baseScore, - accuracy: leaderboard ? token.baseScore / leaderboard.maxScore : Infinity, + accuracy: leaderboard ? (token.baseScore / leaderboard.maxScore) * 100 : Infinity, rank: token.rank, modifiers: modifiers, misses: token.missedNotes + token.badCuts, diff --git a/projects/website/package.json b/projects/website/package.json index 47bdfc8..bbdd914 100644 --- a/projects/website/package.json +++ b/projects/website/package.json @@ -44,6 +44,7 @@ "react-countup": "^6.5.3", "react-dom": "18.3.1", "react-hook-form": "^7.53.0", + "react-icons": "^5.3.0", "react-use-websocket": "^4.9.0", "tailwind-merge": "^2.5.2", "tailwindcss-animate": "^1.0.7", diff --git a/projects/website/src/components/player/player-header.tsx b/projects/website/src/components/player/player-header.tsx index 5d23907..9f79997 100644 --- a/projects/website/src/components/player/player-header.tsx +++ b/projects/website/src/components/player/player-header.tsx @@ -12,6 +12,7 @@ import ScoreSaberPlayer from "@ssr/common/player/impl/scoresaber-player"; import Link from "next/link"; import { capitalizeFirstLetter } from "@/common/string-utils"; import AddFriend from "@/components/friend/add-friend"; +import PlayerSteamProfile from "@/components/player/player-steam-profile"; /** * Renders the change for a stat. @@ -176,7 +177,10 @@ export default function PlayerHeader({ player }: Props) {

{player.name}

- +
+ + +
@@ -203,7 +207,7 @@ export default function PlayerHeader({ player }: Props) { -
+
diff --git a/projects/website/src/components/player/player-steam-profile.tsx b/projects/website/src/components/player/player-steam-profile.tsx new file mode 100644 index 0000000..ad8065a --- /dev/null +++ b/projects/website/src/components/player/player-steam-profile.tsx @@ -0,0 +1,22 @@ +"use client"; + +import { FaSteam } from "react-icons/fa"; +import Tooltip from "@/components/tooltip"; +import ScoreSaberPlayer from "@ssr/common/player/impl/scoresaber-player"; +import Link from "next/link"; + +type Props = { + player: ScoreSaberPlayer; +}; + +export default function PlayerSteamProfile({ player }: Props) { + return ( +
+ Click to view the Steam Profile for {player.name}

} side="bottom"> + + + +
+
+ ); +} diff --git a/projects/website/src/components/player/player-tracked-status.tsx b/projects/website/src/components/player/player-tracked-status.tsx index 8978a26..f12005d 100644 --- a/projects/website/src/components/player/player-tracked-status.tsx +++ b/projects/website/src/components/player/player-tracked-status.tsx @@ -34,7 +34,7 @@ export default function PlayerTrackedStatus({ player }: Props) { } side="bottom" > - +
);