dmclc
Version:
Dolphin Minecraft Launcher Core
101 lines (100 loc) • 3.29 kB
TypeScript
/// <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>;
}