From bf716627a1523f2a530ea65f79dabface0fedc72 Mon Sep 17 00:00:00 2001 From: CPTProgrammer <46586216+CPTProgrammer@users.noreply.github.com> Date: Sat, 18 Jul 2026 22:20:50 +0800 Subject: [PATCH] Fix Minecraft version resolution to CurseForge publisher --- src/services/platforms/curseforge.ts | 8 +++++++- src/types/curseforge/game.ts | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/services/platforms/curseforge.ts b/src/services/platforms/curseforge.ts index 194ba94..cccd1a4 100644 --- a/src/services/platforms/curseforge.ts +++ b/src/services/platforms/curseforge.ts @@ -1,5 +1,5 @@ import { curseforgeClient } from "@/services/clients"; -import { uploadFile, getGameVersions } from "@/lib/curseforge"; +import { uploadFile, getGameVersions, getMinecraftVersions } from "@/lib/curseforge"; import { resolveVersionName } from "@/lib/utils/format"; import type { UploadMetadata } from "@/types"; import { PlatformPublishFn } from "../publish.schemas"; @@ -10,12 +10,18 @@ export const publishCurseForgeVersion: PlatformPublishFn = async (ctx, mcVersion const displayName = resolveVersionName(config.curseforge.version_name, config, input.version, mcVersion); const gameVersions = await getGameVersions(curseforgeClient); + const minecraftVersions = await getMinecraftVersions(curseforgeClient); const resolveId = (name: string): number => { const found = gameVersions.find((v) => v.name === name); if (!found) throw new Error(`Game version "${name}" not found in CurseForge`); return found.id; }; + const resolveMinecraftVersionId = (name: string): number => { + const found = minecraftVersions.find((v) => v.versionString === name); + if (!found) throw new Error(`Minecraft version "${name}" not found in CurseForge`); + return found.gameVersionId; + }; const metadata: UploadMetadata = { changelog: input.changelog, diff --git a/src/types/curseforge/game.ts b/src/types/curseforge/game.ts index 814e142..672acf7 100644 --- a/src/types/curseforge/game.ts +++ b/src/types/curseforge/game.ts @@ -58,6 +58,7 @@ export const MinecraftGameVersionSchema = z.object({ /** 版本类型状态:1=Normal 2=Deleted */ gameVersionTypeStatus: z.union([z.literal(1), z.literal(2)]), }).pick({ + gameVersionId: true, versionString: true, }); export type MinecraftGameVersion = z.infer;