UNPKG

@meibot/unofficial-valorant-api

Version:

Library for the Unofficial VALORANT API by api.henrikdev.xyz

228 lines (227 loc) 5.99 kB
import type { Characters, Mode, Rank, Region, ValorantMap, Weapon } from "./general"; export interface Player { puuid: string; name: string; tag: string; team: "Red" | "Blue"; level: number; character: Characters; currenttier: number; currenttier_patched: Rank; player_card: string; player_title: string; party_id: string; session_playtime: { minutes?: number | null; seconds?: number | null; milliseconds?: number | null; }; behavior: { afk_rounds: number; friendly_fire: { incoming: number; outgoing: number; }; rounds_in_spawn: number; }; platform: { type: string; os: { name: string; version: string; }; }; ability_casts: { c_cast: number; q_cast: number; e_cast: number; x_cast: number; }; assets: { card: { small: string; large: string; wide: string; }; agent: { small: string; bust: string; full: string; killfeed: string; }; }; stats: { score: number; kills: number; deaths: number; assists: number; bodyshots: number; headshots: number; legshots: number; }; economy: { spent: { overall: number; average: number; }; loadout_value: { overall: number; average: number; }; }; damage_made: number; damage_received: number; } export type PlayerLocation = { x: number; y: number; }; export interface PlayerLocationOnEvent { player_puuid: string; player_display_name: string; player_team: "Red" | "Blue"; location: PlayerLocation; view_radians: number; } export interface KillEvent { kill_time_in_round: number; kill_time_in_match: number; killer_puuid: string; killer_display_name: string; killer_team: "Red" | "Blue"; victim_puuid: string; victim_display_name: string; victim_team: "Red" | "Blue"; victim_death_location: PlayerLocation; damage_weapon_id: string; damage_weapon_name?: Weapon | null; damage_weapon_assets: { display_icon?: string | null; killfeed_icon?: string | null; }; secondary_fire_mode: boolean; player_locations_on_kill: PlayerLocationOnEvent[]; assistants: { assistant_puuid: string; assistant_display_name: string; assistant_team: "Red" | "Blue"; }[]; } export interface Round { winning_team: "Red" | "Blue"; end_type: "Eliminated" | "Bomb defused" | "Bomb detonated" | "Round timer expired" | "Surrendered"; bomb_planted: boolean; bomb_defused: boolean; plant_events: { plant_location?: PlayerLocation | null; planted_by?: { puuid: string; display_name: string; team: "Red" | "Blue"; } | null; plant_site?: "A" | "B" | "C" | null; plant_time_in_round?: number | null; player_locations_on_plant?: PlayerLocationOnEvent[] | null; }; defuse_events: { defuse_location?: PlayerLocation | null; defused_by?: { puuid: string; display_name: string; team: "Red" | "Blue"; } | null; defuse_time_in_round?: number | null; player_locations_on_defuse?: PlayerLocationOnEvent[] | null; }; player_stats: { ability_casts: { c_cast?: number | null; q_cast?: number | null; e_cast?: number | null; x_cast?: number | null; }; player_puuid: string; player_display_name: string; player_team: "Red" | "Blue"; damage_events: { receiver_puuid: string; receiver_display_name: string; receiver_team: "Red" | "Blue"; bodyshots: number; damage: number; headshots: number; legshots: number; }[]; damage: number; headshots: number; bodyshots: number; legshots: number; kill_events: KillEvent[]; kills: number; score: number; economy: { loadout_value: number; weapon: { id?: string | null; name?: Weapon | null; assets: { display_icon?: string | null; killfeed_icon?: string | null; }; }; armor: { id?: string | null; name?: "Heavy Shields" | "Light Shields" | null; assets: { display_icon?: string | null; }; }; remaining: number; spent: number; }; was_afk: boolean; was_penalized: boolean; stayed_in_spawn: boolean; }[]; } export interface KillEventMatch extends KillEvent { round: number; } export interface Match { is_available: boolean; metadata: { map: ValorantMap; game_version: string; game_length: number; game_start: number; game_start_patched: string; rounds_played: number; mode: Mode; queue: string; season_id: string; platform: string; matchid: string; region: Region; cluster: string; }; players: { all_players: Player[]; red: Player[]; blue: Player[]; }; teams: { red: { has_won: boolean; rounds_won: number; rounds_lost: number; }; blue: { has_won: boolean; rounds_won: number; rounds_lost: number; }; }; rounds: Round[]; kills: KillEventMatch[]; } export type V3MatchesResponse = Match[];