mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-21 10:47:04 +02:00
feat: better wargaming error typing
This commit is contained in:
1 parent
c37b90caac
commit
c494331470
8 files changed
+134
-119
No files matched your search
@@ -29,6 +29,6 @@ export interface ClanDetailsData {
|
||||
description: string;
|
||||
}
|
||||
|
||||
export interface ClanDetails extends WargamingResponse {
|
||||
data: { [accountId: number]: ClanDetailsData };
|
||||
}
|
||||
export type ClanDetails = WargamingResponse<{
|
||||
[accountId: number]: ClanDetailsData;
|
||||
}>;
|
||||
@@ -8,6 +8,4 @@ export interface Clan {
|
||||
name: string;
|
||||
}
|
||||
|
||||
export interface ClanList extends WargamingResponse {
|
||||
data: Clan[];
|
||||
}
|
||||
export type ClanList = WargamingResponse<Clan[]>;
|
||||
+15
-17
@@ -1,22 +1,20 @@
|
||||
import { WargamingResponse } from './wargamingResponse.js';
|
||||
|
||||
export interface PlayerClanData extends WargamingResponse {
|
||||
data: {
|
||||
[accountId: number]: {
|
||||
account_id: number;
|
||||
joined_at: number;
|
||||
clan_id: number;
|
||||
role: string;
|
||||
account_name: string;
|
||||
export type PlayerClanData = WargamingResponse<{
|
||||
[accountId: number]: {
|
||||
account_id: number;
|
||||
joined_at: number;
|
||||
clan_id: number;
|
||||
role: string;
|
||||
account_name: string;
|
||||
|
||||
clan?: {
|
||||
members_count: number;
|
||||
name: string;
|
||||
created_at: number;
|
||||
tag: string;
|
||||
clan_id: number;
|
||||
emblem_set_id: number;
|
||||
};
|
||||
clan?: {
|
||||
members_count: number;
|
||||
name: string;
|
||||
created_at: number;
|
||||
tag: string;
|
||||
clan_id: number;
|
||||
emblem_set_id: number;
|
||||
};
|
||||
};
|
||||
}
|
||||
}>;
|
||||
@@ -1,59 +1,57 @@
|
||||
import { WargamingResponse } from './wargamingResponse.js';
|
||||
|
||||
export interface PlayerPersonalData extends WargamingResponse {
|
||||
data: {
|
||||
[accountId: number]: {
|
||||
statistics: {
|
||||
clan: {
|
||||
spotted: number;
|
||||
max_frags_tank_id: number;
|
||||
hits: number;
|
||||
frags: number;
|
||||
max_xp: number;
|
||||
max_xp_tank_id: number;
|
||||
wins: number;
|
||||
losses: number;
|
||||
capture_points: number;
|
||||
battles: number;
|
||||
damage_dealt: number;
|
||||
damage_received: number;
|
||||
max_frags: number;
|
||||
shots: number;
|
||||
frags8p: number;
|
||||
xp: number;
|
||||
win_and_survived: number;
|
||||
survived_battles: number;
|
||||
dropped_capture_points: number;
|
||||
};
|
||||
all: {
|
||||
spotted: number;
|
||||
max_frags_tank_id: number;
|
||||
hits: number;
|
||||
frags: number;
|
||||
max_xp: number;
|
||||
max_xp_tank_id: number;
|
||||
wins: number;
|
||||
losses: number;
|
||||
capture_points: number;
|
||||
battles: number;
|
||||
damage_dealt: number;
|
||||
damage_received: number;
|
||||
max_frags: number;
|
||||
shots: number;
|
||||
frags8p: number;
|
||||
xp: number;
|
||||
win_and_survived: number;
|
||||
survived_battles: number;
|
||||
dropped_capture_points: number;
|
||||
};
|
||||
frags: null;
|
||||
export type PlayerPersonalData = WargamingResponse<{
|
||||
[accountId: number]: {
|
||||
statistics: {
|
||||
clan: {
|
||||
spotted: number;
|
||||
max_frags_tank_id: number;
|
||||
hits: number;
|
||||
frags: number;
|
||||
max_xp: number;
|
||||
max_xp_tank_id: number;
|
||||
wins: number;
|
||||
losses: number;
|
||||
capture_points: number;
|
||||
battles: number;
|
||||
damage_dealt: number;
|
||||
damage_received: number;
|
||||
max_frags: number;
|
||||
shots: number;
|
||||
frags8p: number;
|
||||
xp: number;
|
||||
win_and_survived: number;
|
||||
survived_battles: number;
|
||||
dropped_capture_points: number;
|
||||
};
|
||||
account_id: number;
|
||||
created_at: number;
|
||||
updated_at: number;
|
||||
private: null;
|
||||
last_battle_time: number;
|
||||
nickname: string;
|
||||
all: {
|
||||
spotted: number;
|
||||
max_frags_tank_id: number;
|
||||
hits: number;
|
||||
frags: number;
|
||||
max_xp: number;
|
||||
max_xp_tank_id: number;
|
||||
wins: number;
|
||||
losses: number;
|
||||
capture_points: number;
|
||||
battles: number;
|
||||
damage_dealt: number;
|
||||
damage_received: number;
|
||||
max_frags: number;
|
||||
shots: number;
|
||||
frags8p: number;
|
||||
xp: number;
|
||||
win_and_survived: number;
|
||||
survived_battles: number;
|
||||
dropped_capture_points: number;
|
||||
};
|
||||
frags: null;
|
||||
};
|
||||
account_id: number;
|
||||
created_at: number;
|
||||
updated_at: number;
|
||||
private: null;
|
||||
last_battle_time: number;
|
||||
nickname: string;
|
||||
};
|
||||
}
|
||||
}>;
|
||||
@@ -5,6 +5,4 @@ export interface Player {
|
||||
account_id: number;
|
||||
}
|
||||
|
||||
export interface Players extends WargamingResponse {
|
||||
data: Player[];
|
||||
}
|
||||
export type Players = WargamingResponse<Player[]>;
|
||||
+33
-36
@@ -1,38 +1,35 @@
|
||||
import { WargamingResponse } from './wargamingResponse.js';
|
||||
|
||||
export interface TanksStats extends WargamingResponse {
|
||||
data: {
|
||||
[accountId: number]:
|
||||
| {
|
||||
all: {
|
||||
spotted: number;
|
||||
hits: number;
|
||||
frags: number;
|
||||
max_xp: number;
|
||||
wins: number;
|
||||
losses: number;
|
||||
capture_points: number;
|
||||
battles: number;
|
||||
damage_dealt: number;
|
||||
damage_received: number;
|
||||
max_frags: number;
|
||||
shots: number;
|
||||
frags8p: number;
|
||||
xp: number;
|
||||
win_and_survived: number;
|
||||
survived_battles: number;
|
||||
dropped_capture_points: number;
|
||||
};
|
||||
last_battle_time: number;
|
||||
account_id: number;
|
||||
max_xp: number;
|
||||
in_garage_updated: number;
|
||||
max_frags: number;
|
||||
frags: number | null;
|
||||
mark_of_mastery: number;
|
||||
battle_life_time: number;
|
||||
in_garage: number | null;
|
||||
tank_id: number;
|
||||
}[];
|
||||
};
|
||||
}
|
||||
export type TanksStats = WargamingResponse<{
|
||||
[accountId: number]: {
|
||||
all: {
|
||||
spotted: number;
|
||||
hits: number;
|
||||
frags: number;
|
||||
max_xp: number;
|
||||
wins: number;
|
||||
losses: number;
|
||||
capture_points: number;
|
||||
battles: number;
|
||||
damage_dealt: number;
|
||||
damage_received: number;
|
||||
max_frags: number;
|
||||
shots: number;
|
||||
frags8p: number;
|
||||
xp: number;
|
||||
win_and_survived: number;
|
||||
survived_battles: number;
|
||||
dropped_capture_points: number;
|
||||
};
|
||||
last_battle_time: number;
|
||||
account_id: number;
|
||||
max_xp: number;
|
||||
in_garage_updated: number;
|
||||
max_frags: number;
|
||||
frags: number | null;
|
||||
mark_of_mastery: number;
|
||||
battle_life_time: number;
|
||||
in_garage: number | null;
|
||||
tank_id: number;
|
||||
}[];
|
||||
}>;
|
||||
@@ -1,3 +1,8 @@
|
||||
export interface WargamingResponse {
|
||||
status: string;
|
||||
}
|
||||
export type WargamingResponse<Data extends object> =
|
||||
| {
|
||||
status: 'error';
|
||||
}
|
||||
| {
|
||||
status: 'ok';
|
||||
data: Data;
|
||||
};
|
||||
@@ -0,0 +1,21 @@
|
||||
import {
|
||||
CacheType,
|
||||
ChatInputCommandInteraction,
|
||||
EmbedBuilder,
|
||||
} from 'discord.js';
|
||||
import { NEGATIVE_COLOR } from '../constants/colors.js';
|
||||
|
||||
export default async function wargamingError(
|
||||
interaction: ChatInputCommandInteraction<CacheType>,
|
||||
) {
|
||||
await interaction.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setColor(NEGATIVE_COLOR)
|
||||
.setTitle('Skilled Bot ran into an issue')
|
||||
.setDescription('Wargaming returned an error. Please try again later.'),
|
||||
],
|
||||
});
|
||||
|
||||
console.log('Wargaming returned an error.');
|
||||
}
|
||||
Reference in new issue
Block a user