add: if player online when display marketplace in TopBar

This commit is contained in:
2025-07-19 02:07:34 +05:00
parent 56da7c7543
commit c39a8bc43c
5 changed files with 192 additions and 5 deletions

View File

@ -45,6 +45,56 @@ export interface ApiError {
details?: string;
}
export interface Server {
id: string;
name: string;
ip: string;
port: number;
description: string;
online_players: number;
max_players: number;
last_activity: string;
}
export interface ActiveServersResponse {
servers: Server[];
}
// Исправьте тип возвращаемого значения
export async function fetchActiveServers(): Promise<Server[]> {
const response = await fetch(`${API_BASE_URL}/api/pranks/servers`);
if (!response.ok) {
throw new Error('Не удалось получить активные сервера');
}
return await response.json();
}
export interface OnlinePlayersResponse {
server: {
id: string;
name: string;
};
online_players: {
// Это массив объектов, а не один объект
username: string;
uuid: string;
online_since: string;
}[]; // Добавьте [] здесь чтобы указать, что это массив
count: number;
}
export async function fetchOnlinePlayers(
server_id: string,
): Promise<OnlinePlayersResponse> {
const response = await fetch(
`${API_BASE_URL}/api/pranks/servers/${server_id}/players`,
);
if (!response.ok) {
throw new Error('Не удалось получить онлайн игроков');
}
return await response.json();
}
// Получение информации о игроке
export async function fetchPlayer(uuid: string): Promise<Player> {
try {