fix: paper/purpur vers mismatch (#5687)
* fix: paper/purpur * fix: use fill api * fix: lint
This commit is contained in:
@@ -14,18 +14,18 @@ import { LabrinthAffiliateInternalModule } from './labrinth/affiliate/internal'
|
||||
import { LabrinthAuthInternalModule } from './labrinth/auth/internal'
|
||||
import { LabrinthAuthV2Module } from './labrinth/auth/v2'
|
||||
import { LabrinthBillingInternalModule } from './labrinth/billing/internal'
|
||||
import { LabrinthCollectionsModule } from './labrinth/collections'
|
||||
import { LabrinthGlobalsInternalModule } from './labrinth/globals/internal'
|
||||
import { LabrinthLimitsV3Module } from './labrinth/limits/v3'
|
||||
import { LabrinthNotificationsV2Module } from './labrinth/notifications/v2'
|
||||
import { LabrinthOAuthInternalModule } from './labrinth/oauth/internal'
|
||||
import { LabrinthCollectionsModule } from './labrinth/collections'
|
||||
import { LabrinthOrganizationsV3Module } from './labrinth/organizations/v3'
|
||||
import { LabrinthPatsV2Module } from './labrinth/pats/v2'
|
||||
import { LabrinthLimitsV3Module } from './labrinth/limits/v3'
|
||||
import { LabrinthPayoutV3Module } from './labrinth/payout/v3'
|
||||
import { LabrinthPayoutsV3Module } from './labrinth/payouts/v3'
|
||||
import { LabrinthReportsV3Module } from './labrinth/reports/v3'
|
||||
import { LabrinthProjectsV2Module } from './labrinth/projects/v2'
|
||||
import { LabrinthProjectsV3Module } from './labrinth/projects/v3'
|
||||
import { LabrinthReportsV3Module } from './labrinth/reports/v3'
|
||||
import { LabrinthServerPingInternalModule } from './labrinth/server-ping/internal'
|
||||
import { LabrinthSessionsV2Module } from './labrinth/sessions/v2'
|
||||
import { LabrinthStateModule } from './labrinth/state'
|
||||
|
||||
@@ -3,11 +3,11 @@ export * from './auth/v2'
|
||||
export * from './billing/internal'
|
||||
export * from './collections'
|
||||
export * from './globals/internal'
|
||||
export * from './limits/v3'
|
||||
export * from './notifications/v2'
|
||||
export * from './oauth/internal'
|
||||
export * from './organizations/v3'
|
||||
export * from './pats/v2'
|
||||
export * from './limits/v3'
|
||||
export * from './payout/v3'
|
||||
export * from './payouts/v3'
|
||||
export * from './projects/v2'
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
export namespace Paper {
|
||||
export namespace Versions {
|
||||
export namespace v3 {
|
||||
export type Project = {
|
||||
project: { id: string; name: string }
|
||||
versions: Record<string, string[]>
|
||||
}
|
||||
|
||||
export type VersionBuilds = {
|
||||
builds: number[]
|
||||
}
|
||||
|
||||
@@ -12,6 +12,13 @@ export class PaperVersionsV3Module extends AbstractModule {
|
||||
return 'paper_versions_v3'
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the Paper project info including all supported Minecraft versions.
|
||||
*/
|
||||
public async getProject(): Promise<Paper.Versions.v3.Project> {
|
||||
return $fetch<Paper.Versions.v3.Project>(`${BASE_URL}/projects/paper`)
|
||||
}
|
||||
|
||||
/**
|
||||
* Get available Paper builds for a Minecraft version.
|
||||
*
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
export namespace Purpur {
|
||||
export namespace Versions {
|
||||
export namespace v2 {
|
||||
export type Project = {
|
||||
project: string
|
||||
versions: string[]
|
||||
}
|
||||
|
||||
export type VersionBuilds = {
|
||||
builds: {
|
||||
all: string[]
|
||||
|
||||
@@ -12,6 +12,13 @@ export class PurpurVersionsV2Module extends AbstractModule {
|
||||
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.
|
||||
*
|
||||
|
||||
@@ -104,7 +104,7 @@ import { computed, onMounted, ref, watch } from 'vue'
|
||||
|
||||
import { useDebugLogger } from '#ui/composables/debug-logger'
|
||||
|
||||
import { injectFilePicker, injectTags } from '../../../../providers'
|
||||
import { injectFilePicker, injectModrinthClient, injectTags } from '../../../../providers'
|
||||
import Avatar from '../../../base/Avatar.vue'
|
||||
import ButtonStyled from '../../../base/ButtonStyled.vue'
|
||||
import Chips from '../../../base/Chips.vue'
|
||||
@@ -116,6 +116,7 @@ import { injectCreationFlowContext } from '../creation-flow-context'
|
||||
import { capitalize, formatLoaderLabel } from '../shared'
|
||||
|
||||
const debug = useDebugLogger('CustomSetupStage')
|
||||
const client = injectModrinthClient()
|
||||
const ctx = injectCreationFlowContext()
|
||||
const {
|
||||
selectedLoader,
|
||||
@@ -280,9 +281,8 @@ async function fetchLoaderManifest(loader: string) {
|
||||
async function fetchPaperSupportedVersions() {
|
||||
if (paperSupportedVersions.value) return
|
||||
try {
|
||||
const res = await fetch('https://api.papermc.io/v2/projects/paper')
|
||||
const data = (await res.json()) as { versions: string[] }
|
||||
paperSupportedVersions.value = new Set(data.versions)
|
||||
const project = await client.paper.versions_v3.getProject()
|
||||
paperSupportedVersions.value = new Set(Object.values(project.versions).flat())
|
||||
} catch {
|
||||
paperSupportedVersions.value = new Set()
|
||||
}
|
||||
@@ -291,9 +291,8 @@ async function fetchPaperSupportedVersions() {
|
||||
async function fetchPurpurSupportedVersions() {
|
||||
if (purpurSupportedVersions.value) return
|
||||
try {
|
||||
const res = await fetch('https://api.purpurmc.org/v2/purpur')
|
||||
const data = (await res.json()) as { versions: string[] }
|
||||
purpurSupportedVersions.value = new Set(data.versions)
|
||||
const project = await client.purpur.versions_v2.getProject()
|
||||
purpurSupportedVersions.value = new Set(project.versions)
|
||||
} catch {
|
||||
purpurSupportedVersions.value = new Set()
|
||||
}
|
||||
@@ -302,8 +301,7 @@ async function fetchPurpurSupportedVersions() {
|
||||
async function fetchPaperVersions(mcVersion: string) {
|
||||
if (paperVersions.value[mcVersion]) return
|
||||
try {
|
||||
const res = await fetch(`https://fill.papermc.io/v3/projects/paper/versions/${mcVersion}`)
|
||||
const data = (await res.json()) as { builds: number[] }
|
||||
const data = await client.paper.versions_v3.getBuilds(mcVersion)
|
||||
paperVersions.value[mcVersion] = data.builds.sort((a, b) => b - a)
|
||||
} catch {
|
||||
paperVersions.value[mcVersion] = []
|
||||
@@ -313,8 +311,7 @@ async function fetchPaperVersions(mcVersion: string) {
|
||||
async function fetchPurpurVersions(mcVersion: string) {
|
||||
if (purpurVersions.value[mcVersion]) return
|
||||
try {
|
||||
const res = await fetch(`https://api.purpurmc.org/v2/purpur/${mcVersion}`)
|
||||
const data = (await res.json()) as { builds: { all: string[] } }
|
||||
const data = await client.purpur.versions_v2.getBuilds(mcVersion)
|
||||
purpurVersions.value[mcVersion] = data.builds.all.sort((a, b) => parseInt(b) - parseInt(a))
|
||||
} catch {
|
||||
purpurVersions.value[mcVersion] = []
|
||||
|
||||
Reference in New Issue
Block a user