diff --git a/src/client/SinglePlayerModal.ts b/src/client/SinglePlayerModal.ts index 37f023ca4..4fe22a0d4 100644 --- a/src/client/SinglePlayerModal.ts +++ b/src/client/SinglePlayerModal.ts @@ -144,14 +144,7 @@ export class SinglePlayerModal extends BaseModal { return; } - const achievements = Array.isArray(userMe.player.achievements) - ? userMe.player.achievements - : []; - - const completions = - achievements.find( - (achievement) => achievement?.type === "singleplayer-map", - )?.data ?? []; + const completions = userMe.player.achievements.singleplayerMap; const winsMap = new Map>(); for (const entry of completions) { diff --git a/src/core/ApiSchemas.ts b/src/core/ApiSchemas.ts index 787bcd802..ca82eb1d9 100644 --- a/src/core/ApiSchemas.ts +++ b/src/core/ApiSchemas.ts @@ -56,14 +56,9 @@ export const UserMeResponseSchema = z.object({ publicId: z.string(), roles: z.string().array().optional(), flares: z.string().array().optional(), - achievements: z - .array( - z.object({ - type: z.literal("singleplayer-map"), // TODO: change the shape to be more flexible when we have more achievements - data: z.array(SingleplayerMapAchievementSchema), - }), - ) - .optional(), + achievements: z.object({ + singleplayerMap: z.array(SingleplayerMapAchievementSchema), + }), leaderboard: z .object({ oneVone: z