UNPKG

rivalsjs

Version:

<h1 align="center"> Rivals JS </h1>

405 lines (399 loc) 10.9 kB
import { Client } from '../index.js'; import { Result } from 'neverthrow'; import 'axios'; type PlayerResponse = { uid: number; name: string; updates: { infoUpdateTime: string; lastHistoryUpdate: string; lastInsertedMatch: string; lastUpdateRequest: string; }; player: { uid: number; level: string; name: string; icon: { playerIconId: string; playerIcon: string; banner: string; }; team: { clubTeamId: string; clubTeamMiniName: string; clubTeamType: string; }; info: { completedAchievements: string; loginOs: string; rankGameSeason: { [key: string]: { rankGameId: number; level: number; rankScore: number; maxLevel: number; maxRankScore: number; updateTime: number; winCount: number; protectScore: number; diffScore: number; }; }; }; rank: { rank: string; score: string; unit: string; icon: string; color: string; peakRank: { rank: string; score: string; unit: string; icon: string; color: string; }; }; }; isPrivate: boolean; overallStats: { totalMatches: number; totalWins: { wins: number; percentileRaw: number; percentile: string; winPercentage: { percentileRaw: number; percentile: number; placement: string; }; }; totalPlayTime: { timePlayed: number; playtime: string; }; perMinute: { totalDamagePerMinute: number; totalDamageTakenPerMinute: number; totalHealingPerMinute: number; }; overallKd: number; overallKda: { kda: number; percentileRaw: number; percentile: string; }; totalMvps: { mvps: number; mvpPercentage: { percentileRaw: number; percentile: number; placement: string; }; }; totalSvps: { svps: number; svpPercentage: { percentileRaw: number; percentile: number; placement: string; }; }; totalKills: { kills: number; percentileRaw: number; percentile: string; }; totalDeaths: { deaths: number; }; totalAssists: { assists: number; }; totalDamage: { damage: string; raw: number; }; totalHealing: { healing: string; raw: number; }; totalDamageTaken: { damageTaken: string; raw: number; }; maxKillStreak: { damageTaken: number; }; rolesPlayed: { [key: string]: { totalTimePlayed: { timePlayed: number; playtime: string; }; matchesPlayed: number; matchesWon: string; winPercentage: { winRate: string; winRateRaw: number; }; kills: number; deaths: number; assists: number; kdRatio: { kd: string; kdRaw: number; }; kdaRatio: { kda: string; kdaRaw: number; }; totalDamage: { damage: string | null; raw: number | null; }; totalDamageTaken: { damageTaken: string | null; raw: number | null; }; totalDamageTakenPerMinute: string; totalHealing: { healing: string | null; raw: number | null; }; totalHealingPerMinute: { healing: string; raw: number; }; }; }; ranked: { totalMatches: number; totalWins: number; totalAssists: number; totalDeaths: number; totalKills: number; totalTimePlayed: string; totalTimePlayedRaw: number; totalMvp: number; totalSvp: number; }; unranked: { totalMatches: number; totalWins: number; totalAssists: number; totalDeaths: number; totalKills: number; totalTimePlayed: string; totalTimePlayedRaw: number; totalMvp: number; totalSvp: number; }; }; matchHistory: { matchUid: string; mapId: number; mapThumbnail: string; duration: number; season: number; winnerSide: number; mvpUid: number; svpUid: number; matchTimeStamp: number; playModeId: number; gameModeId: number; scoreInfo: { "0": number; "1": number; }; playerPerformance: { playerUid: number; heroId: number; heroName: string; heroType: string; kills: number; deaths: number; assists: number; isWin: { score: number; isWin: boolean; }; disconnected: boolean; camp: number; scoreChange: number; level: number; newLevel: number; newScore: number; }; }[]; rankHistory: { matchTimeStamp: number; levelProgression: { from: number; to: number; }; scoreProgression: { addScore: number; totalScore: number; }; }[]; heroMatchups: { heroId?: number; heroName: string; heroClass: string; heroThumbnail?: string; matches: number; wins: number; winRate: string; }[]; teamMates: { playerInfo: { nickName: string; playerIcon: string; playerUid: number; }; matches: number; wins: number; winRate: string; }[]; heroesRanked: { heroId: number; heroName: string; heroThumbnail: string; matches: number; wins: number; mvp: number; svp: number; kills: number; deaths: number; assists: number; playTime: number; damage: number; heal: number; damageTaken: number; mainAttack: { total: number; hits: number; }; }[]; heroesUnranked: { heroId: number; heroName: string; heroThumbnail: string; matches: number; wins: number; mvp: number; svp: number; kills: number; deaths: number; assists: number; playTime: number; damage: number; heal: number; damageTaken: number; mainAttack: { total: number; hits: number; }; }[]; maps: { mapId: number; mapThumbnail: string; matches: number; wins: number; kills: number; deaths: number; assists: number; playTime: number; }[]; }; type PlayerMatchHistoryResponse = { matchHistory: { matchMapId: number; mapThumbnail: string; matchPlayDuration: string; matchSeason: string; matchUid: string; matchWinnerSide: number; mvpUid: number; svpUid: number; scoreInfo: { [key: string]: number; }; matchTimeStamp: number; playModeId: number; gameModeId: number; matchPlayer: { assists: number; kills: number; deaths: number; isWin: { score: number; isWin: boolean; }; disconnected: boolean; playerUid: number; camp: number; scoreInfo: { addScore: number; level: number; newLevel: number; newScore: number; }; playerHero: { heroId: number; heroName: string; heroType: string; kills: number; deaths: number; assists: number; playTime: { raw: number; formatted: string; }; totalHeroDamage: number; totalDamageTaken: number; totalHeroHeal: number; }; }; }[]; pagination: BasePagination & { totalMatches: number; }; }; type BasePagination = { page: number; limit: number; totalPages: number; hasMore: boolean; }; /** * Player data for a specific player identified by uid or username. It processes player statistics and related data, such as match history, rank history, heroes, and maps. * * @export * @async * @param {Client} client * @param {number} uid * @returns {Promise<Result<PlayerResponse, string>>} */ declare function getPlayer(client: Client, uid: number): Promise<Result<PlayerResponse, string>>; /** * Retrieves the match history of a player based on their unique identifier (UID) or username. It allows filtering by season, skip value, and game mode. * * @export * @async * @param {Client} client * @param {number} uid * @param {?number} [page] * @param {?number} [limit] * @param {?number} [gameMode] * @param {?number} [timestamp] * @returns {Promise<Result<PlayerMatchHistoryResponse, string>>} */ declare function getPlayerMatchHistory(client: Client, uid: number, page?: number, limit?: number, gameMode?: number, timestamp?: number): Promise<Result<PlayerMatchHistoryResponse, string>>; declare const routes: { player(uid: number): string; playerMatchHistory(uid: number, page?: number, limit?: number, gameMode?: number, timestamp?: number): string; }; export { getPlayer, getPlayerMatchHistory, routes };