rivalsjs
Version:
<h1 align="center"> Rivals JS </h1>
405 lines (399 loc) • 10.9 kB
TypeScript
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 };