import { test } from "vitest"; import { Instance, offlineAuth, RuntimeManager, getJavaComponent } from "../../dist/index.js"; import path from "path"; import fs from "fs/promises"; const gameRoot = path.join(import.meta.dirname, "..", "temp"); // await fs.rm(gameRoot, { recursive: true, force: true }); // await fs.mkdir(gameRoot, { recursive: true }); test("launch game", { timeout: 0, tags: ["vanilla"] }, async () => { const javaManager = new RuntimeManager(path.join(gameRoot, "java")); javaManager.on("progress", console.log) // const java = await javaManager.use(await getJavaComponent("${version}")) const instance = new Instance({ version: "${version}", auth: offlineAuth("player"), paths: { root: gameRoot, instance: path.join(gameRoot, "instances", "${version}") }, javaExecutable: "${java}" }); instance.on("progress", console.log); instance.on("log", (step, msg) => { console.log(`[${step}] ${msg}`) }) await instance.install(); const p = await instance.launch(); p.stdout.on("data", (d: Buffer) => { console.log(d.toString()); }); p.stderr.on("data", (d: Buffer) => { console.log(d.toString()); }); await new Promise((res) => { p.on("error", (d: Buffer) => { console.log(d.toString()); res(); }); p.on("close", () => { console.log("closed"); res(); }); }); });