You've already forked AstralRinth
forked from didirus/AstralRinth
e6b061f38c
* fix: paper/purpur * fix: use fill api * fix: lint
31 lines
874 B
TypeScript
31 lines
874 B
TypeScript
import { $fetch } from 'ofetch'
|
|
|
|
import { AbstractModule } from '../../core/abstract-module'
|
|
import type { Purpur } from './types'
|
|
|
|
export type { Purpur } from './types'
|
|
|
|
const BASE_URL = 'https://api.purpurmc.org/v2'
|
|
|
|
export class PurpurVersionsV2Module extends AbstractModule {
|
|
public getModuleID(): string {
|
|
return 'purpur_versions_v2'
|
|
}
|
|
|
|
/**
|
|
* Get the Purpur project info including all supported Minecraft versions.
|
|
*/
|
|
public async getProject(): Promise<Purpur.Versions.v2.Project> {
|
|
return $fetch<Purpur.Versions.v2.Project>(`${BASE_URL}/purpur`)
|
|
}
|
|
|
|
/**
|
|
* Get available Purpur builds for a Minecraft version.
|
|
*
|
|
* @param mcVersion - Minecraft version (e.g. "1.21.4")
|
|
*/
|
|
public async getBuilds(mcVersion: string): Promise<Purpur.Versions.v2.VersionBuilds> {
|
|
return $fetch<Purpur.Versions.v2.VersionBuilds>(`${BASE_URL}/purpur/${mcVersion}`)
|
|
}
|
|
}
|