UNPKG

dmclc

Version:

Dolphin Minecraft Launcher Core

101 lines (100 loc) 3.29 kB
/// <reference types="node" resolution-mode="require"/> import { ChildProcess } from "child_process"; import { Account } from "./auth/account.js"; import { ContentVersion } from "./index.js"; import { Launcher } from "./launcher.js"; import { ModManager } from "./mods/manage/ModManager.js"; import { Library, MCVersion } from "./schemas.js"; /** * @internal */ export interface DMCLCExtraVersionInfo { version: string; loaders: LoaderInfo[]; enableIndependentGameDir: boolean; beforeCommand?: string; usingJava?: string; moreGameArguments?: string[]; moreJavaArguments?: string[]; } /** * @internal */ export interface LoaderInfo { name: string; version: string; } /** * Version. * @public */ export declare class MinecraftVersion { private launcher; versionObject: MCVersion; extras: DMCLCExtraVersionInfo; name: string; versionRoot: string; versionLaunchWorkDir: string; versionJarPath: string; modManager: ModManager; /** * Creates a new version from name. * @param launcher - The launcher instance * @param name - The name of this version. The directory name, not always Minecraft version. * @returns The new created version object. */ static fromVersionName(launcher: Launcher, name: string, enableIndependentGameDir?: boolean): MinecraftVersion; /** * Creates a new version from JSON object. * @param launcher - The launcher instance. * @param object - The Version JSON object. */ private constructor(); private detectExtras; private getVersionFromJar; /** * Run this version! * @throws RequestError * @param account - The using account. * @returns The Minecraft process. Both stdout and stderr uses UTF-8. */ run(account: Account<never>): Promise<ChildProcess>; /** * Complete this version installation. Fix wrong libraries, asset files and version.jar. Won't fix version.json. */ completeVersionInstall(alwaysDownloadNoDownloadsItems?: boolean): Promise<boolean>; private completeAssets; /** * INTERNAL API. MAY BE CHANGE WITHOUT NOTIFY. * Fix wrong and missing libraries. Used by Forge installing. * @param liblist - All the libraries. * @internal */ completeLibraries(liblist: Library[], alwaysDownloadNoDownloadsItems?: boolean): Promise<boolean>; private getClassPath; private parseArgument; private getArguments; private extractNative; /** * Get all the installable loader versions on this Minecraft version. Doesn't consider loader conflicts. * @throws {@link FormattedError} * @throws RequestError * @param name - The name of loader. * @returns The versions of loader. */ getSuitableLoaderVersions(name: string): Promise<string[]>; /** * Install a mod loader. * @throws {@link FormattedError} * @throws RequestError * @param name - Loader name. * @param loaderVersion - Loader version. */ installLoader(name: string, loaderVersion: string): Promise<void>; saveExtras(): void; /** * @throws RequestError * @param contentVersion content version */ installContentVersion(contentVersion: ContentVersion): Promise<void>; }