From f4a4954b75559d6e0b3b53296cfc656a882b3d10 Mon Sep 17 00:00:00 2001 From: Zach Ripka Date: Sat, 30 Mar 2024 20:36:29 +0100 Subject: [PATCH] Fixes left and right spray slot selections. Fixes user agent. --- app/routes/loadouts/$loadoutId/sprays/left.tsx | 1 - app/routes/loadouts/$loadoutId/sprays/right.tsx | 1 - app/routes/loadouts/index.tsx | 1 - app/utils.server.ts | 3 +++ package.json | 2 +- server/userman.ts | 5 ++++- server/valorantApi.ts | 16 +++++++++++++++- 7 files changed, 23 insertions(+), 6 deletions(-) diff --git a/app/routes/loadouts/$loadoutId/sprays/left.tsx b/app/routes/loadouts/$loadoutId/sprays/left.tsx index d05382a..fcf246b 100644 --- a/app/routes/loadouts/$loadoutId/sprays/left.tsx +++ b/app/routes/loadouts/$loadoutId/sprays/left.tsx @@ -93,7 +93,6 @@ export async function loader({ params }: LoaderArgs) { (entitlement) => entitlement.ItemID === spray.uuid ) ) - .filter((spray) => spray.category !== 'EAresSprayCategory::Contextual') .sort((a, b) => a.displayName.localeCompare(b.displayName)); return json({ diff --git a/app/routes/loadouts/$loadoutId/sprays/right.tsx b/app/routes/loadouts/$loadoutId/sprays/right.tsx index e33455c..ed59aa9 100644 --- a/app/routes/loadouts/$loadoutId/sprays/right.tsx +++ b/app/routes/loadouts/$loadoutId/sprays/right.tsx @@ -93,7 +93,6 @@ export async function loader({ params }: LoaderArgs) { (entitlement) => entitlement.ItemID === spray.uuid ) ) - .filter((spray) => spray.category !== 'EAresSprayCategory::Contextual') .sort((a, b) => a.displayName.localeCompare(b.displayName)); return json({ diff --git a/app/routes/loadouts/index.tsx b/app/routes/loadouts/index.tsx index 7543d97..bd49d37 100644 --- a/app/routes/loadouts/index.tsx +++ b/app/routes/loadouts/index.tsx @@ -240,7 +240,6 @@ export const loader = async () => { return json({ loadouts, - allAgents: valorantData.agents, }); }; diff --git a/app/utils.server.ts b/app/utils.server.ts index ccb3f29..29d6a19 100644 --- a/app/utils.server.ts +++ b/app/utils.server.ts @@ -236,6 +236,8 @@ export async function getUser() { headers: generateRequestHeaders({ accessToken: tokens.accessToken, entitlementsToken: tokens.token, + riotClientVersion: + global.valorantData.version.riotClientVersion, }), } ); @@ -286,6 +288,7 @@ export async function getUser() { userShardRegionCache.set(tokens.subject, res); return new User({ + riotClientVersion: global.valorantData.version.riotClientVersion, accessToken: tokens.accessToken, entitlementsToken: tokens.token, region: res.region, diff --git a/package.json b/package.json index 5b0ab95..e944e5e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "valpal", - "version": "0.0.8", + "version": "0.0.9", "private": true, "sideEffects": false, "scripts": { diff --git a/server/userman.ts b/server/userman.ts index dd2adf1..af75ad2 100644 --- a/server/userman.ts +++ b/server/userman.ts @@ -43,13 +43,14 @@ export function generateRequestHeaders( args: { accessToken: string; entitlementsToken: string; + riotClientVersion: string; }, extraHeaders: Record = {} ) { const defaultHeaders = { Authorization: `Bearer ${args.accessToken}`, 'X-Riot-Entitlements-JWT': args.entitlementsToken, - 'X-Riot-ClientVersion': 'release-08.00-shipping-14-2191955', + 'X-Riot-ClientVersion': args.riotClientVersion, 'X-Riot-ClientPlatform': btoa( JSON.stringify({ platformType: 'PC', @@ -79,6 +80,7 @@ export class User { constructor(args: { accessToken: string; entitlementsToken: string; + riotClientVersion: string; userId: string; region: Regions; shard: Shards; @@ -89,6 +91,7 @@ export class User { this.region = args.region; this.shard = args.shard; this.requestHeaders = generateRequestHeaders({ + riotClientVersion: args.riotClientVersion, accessToken: this.accessToken, entitlementsToken: this.entitlementsToken, }); diff --git a/server/valorantApi.ts b/server/valorantApi.ts index 7f09d90..9b67f33 100644 --- a/server/valorantApi.ts +++ b/server/valorantApi.ts @@ -64,8 +64,17 @@ async function getAgents() { return data.data.filter((agent) => agent.isPlayableCharacter); } +async function getVersion() { + const { data } = await httpClient.get<{ + status: number; + data: { riotClientVersion: string }; + }>('https://valorant-api.com/v1/version'); + + return data.data; +} + export async function initSkinData() { - const [weapons, buddies, sprays, playerCards, playerTitles, agents] = + const [weapons, buddies, sprays, playerCards, playerTitles, agents, version] = await Promise.all([ getWeapons(), getBuddies(), @@ -73,6 +82,7 @@ export async function initSkinData() { getPlayerCards(), getPlayerTitles(), getAgents(), + getVersion(), ]); global.valorantData = { @@ -82,6 +92,7 @@ export async function initSkinData() { playerCards, playerTitles, agents, + version, }; } @@ -93,5 +104,8 @@ declare global { playerCards: PlayerCard[]; playerTitles: PlayerTitle[]; agents: Agent[]; + version: { + riotClientVersion: string; + }; }; }