minecraft-core-master
Version:
Núcleo avanzado para launchers de Minecraft. Descarga, instala y ejecuta versiones de Minecraft, assets, librerías, Java y loaders de forma automática y eficiente.
195 lines (194 loc) • 6.21 kB
TypeScript
import { EventEmitter } from "node:events";
export interface LauncherEvents {
'status': (message: string) => void;
'progress': (data: {
type: string;
message: string;
}) => void;
'phase-start': (phase: string) => void;
'phase-end': (phase: string, time: number) => void;
'speed': (data: {
phase: string;
time: number;
[key: string]: any;
}) => void;
'debug': (data: {
type: string;
[key: string]: any;
}) => void;
'launch-start': (data: any) => void;
'launch-complete': (data: any) => void;
'launch-failed': (data: any) => void;
'game-started': (data: any) => void;
'game-exit': (data: any) => void;
'game-error': (message: string) => void;
'stdout': (output: string) => void;
'stderr': (output: string) => void;
'exit': (data: {
code?: number;
signal?: string;
}) => void;
'error': (error: Error) => void;
}
export interface LauncherOptions {
/** Carpeta raíz donde está instalado Minecraft (Root folder where Minecraft is installed) */
gameRoot: string;
/** Versión de Minecraft a lanzar (Minecraft version to launch) */
version: string;
/** Ruta del ejecutable de Java (Path to Java executable) */
java?: string;
/** Configuración de memoria para la JVM (JVM memory configuration) */
memory?: {
/** Memoria mínima (Minimum memory) */
min?: string;
/** Memoria máxima (Maximum memory) */
max?: string;
};
/** Configuración de la ventana del juego (Game window configuration) */
window?: {
/** Ancho de la ventana (Window width) */
width?: number;
/** Alto de la ventana (Window height) */
height?: number;
/** Si debe iniciarse en pantalla completa (Whether to start in fullscreen) */
fullscreen?: boolean;
};
/** Sobrescrituras de rutas y archivos del juego (Overrides for game paths and files) */
override?: {
/** Directorio donde se ejecuta el juego (Directory where the game runs) */
gameDirectory?: string;
/** Ruta del JAR de Minecraft (Minecraft JAR path) */
minecraftJar?: string;
/** Archivo JSON de versión personalizado (Custom version JSON file) */
versionJson?: string;
/** Carpeta de assets (Assets folder) */
assetRoot?: string;
/** Índice de assets (Assets index) */
assetIndex?: string;
/** Carpeta de librerías (Libraries folder) */
libraryRoot?: string;
/** Carpeta de nativos (Natives folder) */
natives?: string;
/** Carpeta base de esta versión (Base folder of this version) */
directory?: string;
};
/** Configuración de proxy para la conexión a Internet (Proxy configuration for internet connection) */
proxy?: {
/** Host del proxy (Proxy host) */
host: string;
/** Puerto del proxy (Proxy port) */
port: number;
/** Usuario opcional (Optional username) */
username?: string;
/** Contraseña opcional (Optional password) */
password?: string;
/** Tipo de proxy (Proxy type) */
type?: "socks4" | "socks5" | "http";
};
/** Información del usuario (User information) */
user: User;
/** Habilitación o deshabilitación de features opcionales (Enable or disable optional features) */
features?: Record<string, boolean>;
/** Nombre del launcher a mostrar en logs o interfaz (Launcher name to display in logs or UI) */
launcherName?: string;
/** Versión del launcher (Launcher version) */
launcherVersion?: string;
/** Forzar sandbox de Java (Enforce Java sandbox) */
enforceSandbox?: boolean;
/** Habilitar debug detallado (Enable detailed debug) */
enableDebug?: boolean;
/** Habilitar métricas de velocidad y fases (Enable speed and phase metrics) */
enableSpeedMetrics?: boolean;
/** Argumentos personalizados de la JVM (Custom JVM arguments) */
JVM_ARGS?: string[];
/** Argumentos personalizados del juego (Custom game arguments) */
MC_ARGS?: Record<string, string | boolean | number>;
}
export interface User {
access_token?: string;
client_token?: string;
uuid?: string;
name?: string;
user_profiles?: string;
meta?: {
online?: boolean;
type?: string;
};
}
export interface AssetIndex {
id: string;
sha1: string;
size: number;
totalSize: number;
url: string;
}
export interface VersionManifest {
id: string;
mainClass: string;
arguments?: {
game: Argument[];
jvm: Argument[];
} | undefined;
minecraftArguments?: string | undefined;
libraries: Library[];
inheritsFrom?: string | undefined;
jar?: string | undefined;
assets?: string | undefined;
assetIndex?: AssetIndex | undefined;
type?: string | undefined;
minimumLauncherVersion?: number;
releaseTime?: string;
time?: string;
}
export interface Argument {
rules?: Rule[];
value: string | string[];
}
export interface Rule {
action: "allow" | "disallow";
os?: {
name?: string;
version?: string;
arch?: string;
};
features?: Record<string, boolean>;
}
export interface Library {
name: string;
downloads: {
artifact?: {
path: string;
url: string;
sha1: string;
size: number;
};
classifiers?: {
[key: string]: {
path: string;
url: string;
sha1: string;
size: number;
};
};
};
rules?: Rule[];
extract?: {
exclude: string[];
};
natives?: {
[key: string]: string;
};
checksums?: string[];
}
export interface LaunchResult {
emitter: EventEmitter;
pid?: number;
kill: () => boolean;
stats: {
totalTime: number;
phaseTimes: Record<string, number>;
classpathCount: number;
libraryCount: number;
};
}
export declare function ArgumentsBuilder(options: LauncherOptions): Promise<LaunchResult>;