2024-04-15 07:46:45 -04:00
|
|
|
import { WebRequest } from "@/lib/webRequest";
|
2024-04-15 07:16:06 -04:00
|
|
|
import { MojangServerStatus } from "@/types/mojang";
|
|
|
|
import type { CachedPlayer } from "@/types/player";
|
|
|
|
import { Platform } from "@/types/server";
|
|
|
|
import { CachedBedrockMinecraftServer } from "@/types/server/bedrock-server";
|
|
|
|
import { CachedJavaMinecraftServer } from "@/types/server/java-server";
|
2024-04-14 14:03:02 -04:00
|
|
|
|
2024-04-14 13:34:34 -04:00
|
|
|
/**
|
|
|
|
* Get a player by their username or UUID.
|
|
|
|
*
|
|
|
|
* @param query the query to search for the player by
|
|
|
|
* @returns the promised player
|
|
|
|
*/
|
2024-04-14 16:29:29 -04:00
|
|
|
export const getPlayer = (query: string): Promise<CachedPlayer> =>
|
2024-04-15 07:46:45 -04:00
|
|
|
new WebRequest(`/player/${query}`).execute<CachedPlayer>();
|
2024-04-14 15:53:36 -04:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Get a Minecraft server by its platform and hostname.
|
|
|
|
*
|
|
|
|
* @param platform the platform of the server
|
|
|
|
* @param hostname the hostname of the server
|
|
|
|
* @returns the promised server
|
|
|
|
*/
|
|
|
|
export const getMinecraftServer = (
|
|
|
|
platform: Platform,
|
|
|
|
hostname: string
|
2024-04-14 16:29:29 -04:00
|
|
|
): Promise<CachedJavaMinecraftServer | CachedBedrockMinecraftServer> =>
|
2024-04-15 07:56:05 -04:00
|
|
|
platform === Platform.Java
|
2024-04-15 07:46:45 -04:00
|
|
|
? new WebRequest(
|
2024-04-14 16:29:29 -04:00
|
|
|
`/server/${platform}/${hostname}`
|
2024-04-15 07:46:45 -04:00
|
|
|
).execute<CachedJavaMinecraftServer>()
|
|
|
|
: new WebRequest(
|
2024-04-14 16:29:29 -04:00
|
|
|
`/server/${platform}/${hostname}`
|
2024-04-15 07:46:45 -04:00
|
|
|
).execute<CachedBedrockMinecraftServer>();
|
2024-04-14 15:56:45 -04:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Check if the server with the
|
|
|
|
* given hostname is blocked by Mojang.
|
|
|
|
*
|
|
|
|
* @param hostname the server hostname to check
|
|
|
|
* @returns the promised blocked status
|
|
|
|
*/
|
2024-04-14 16:29:29 -04:00
|
|
|
export const isMojangBlocked = (hostname: string): Promise<boolean> =>
|
2024-04-15 07:46:45 -04:00
|
|
|
new WebRequest(`/server/blocked/${hostname}`).execute<boolean>();
|
2024-04-14 16:06:42 -04:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Get the status of Mojang servers.
|
|
|
|
*
|
|
|
|
* @returns the promised status
|
|
|
|
*/
|
2024-04-14 16:29:29 -04:00
|
|
|
export const getMojangServerStatus = (): Promise<MojangServerStatus> =>
|
2024-04-15 07:46:45 -04:00
|
|
|
new WebRequest("/mojang/status").execute<MojangServerStatus>();
|