Merge pull request #60 from Suyashtnt/better-ts

Added docs for types. Thanks, Tabs!
This commit is contained in:
Pierce 2021-01-18 14:05:19 -05:00 committed by GitHub
commit 63e810a685
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 209 additions and 107 deletions

314
index.d.ts vendored
View file

@ -1,110 +1,212 @@
/// <reference types="node" /> /// <reference types="node" />
declare module "minecraft-launcher-core" { declare module "minecraft-launcher-core" {
type OS = "windows" | "osx" | "linux"; type OS = "windows" | "osx" | "linux";
interface IOverrides { interface IOverrides {
minArgs?: number; minArgs?: number;
minecraftJar?: string; minecraftJar?: string;
versionJson?: string; versionJson?: string;
directory?: string; directory?: string;
natives?: string; natives?: string;
assetRoot?: string; assetRoot?: string;
libraryRoot?: string; libraryRoot?: string;
cwd?: string; cwd?: string;
detached?: boolean; detached?: boolean;
classes?: Array<string>; classes?: Array<string>;
maxSockets?: number; maxSockets?: number;
url?: { url?: {
meta?: string; meta?: string;
resources?: string; resources?: string;
mavenForge?: string; mavenForge?: string;
defaultRepoForge?: string; defaultRepoForge?: string;
fallbackMaven?: string; fallbackMaven?: string;
}; };
}
interface ILauncherOptions {
clientPackage?: string;
removePackage?: boolean;
installer?: string;
root: string;
os?: OS;
customLaunchArgs?: Array<string>;
customArgs?: Array<string>;
version: {
number: string;
type: string;
custom?: string;
};
memory: {
max: string | number;
min: string | number;
};
forge?: string;
javaPath?: string;
server?: {
host: string;
port: string;
};
proxy?: {
host: string;
port: string;
username?: string;
password?: string;
};
timeout?: number;
window?: {
width?: number;
height?: number;
fullscreen?: boolean;
};
overrides?: IOverrides;
authorization: Promise<IUser>;
}
interface IUser {
access_token: string;
client_token: string;
uuid: string;
name: string;
user_properties: Partial<any>;
}
interface IProfile {
id: number;
name: string;
}
interface IAuthenticator {
getAuth(username: string, password?: string): Promise<IUser>;
validate(
access_token: string,
client_token: string
): Promise<boolean | Partial<any>>;
refreshAuth(
access_token: string,
client_token: string,
selectedProfile: IProfile
): Promise<IUser>;
invalidate(
access_token: string,
client_token: string
): Promise<boolean | Partial<any>>;
signOut(
username: string,
password: string
): Promise<boolean | Partial<any>>;
changeApiUrl(url: string): void;
}
import { EventEmitter } from 'events'
import { ChildProcessWithoutNullStreams } from 'child_process'
export class Client extends EventEmitter {
launch(options: ILauncherOptions): ChildProcessWithoutNullStreams | null;
}
export const Authenticator: IAuthenticator;
} }
interface ILauncherOptions {
/**
* Path or URL to the client package zip file.
*/
clientPackage?: string;
/**
* if true MCLC will remove the client package zip file after its finished extracting.
*/
removePackage?: boolean;
/**
* Path to installer being executed.
*/
installer?: string;
/**
* Path where you want the launcher to work in.
* This will usually be your .minecraft folder
*/
root: string;
/**
* OS override for minecraft natives
*
* @default will autodetect
*/
os?: OS;
/**
* Array of custom Minecraft arguments.
*/
customLaunchArgs?: Array<string>;
/**
* Array of custom Java arguments
*/
customArgs?: Array<string>;
/**
* minecraft version info
*/
version: {
/**
* Actual version.
*
* @example '1.16.4'
*/
number: string;
/**
* type of release, usually `release` or `snapshot`
*/
type: 'release' | 'snapshot' | string;
/**
* The name of the folder, jar file, and version json in the version folder.
*
* ` MCLC will look in the `versions` folder for this name
* @example '1.16.4-fabric'
*/
custom?: string;
};
memory: {
/**
* Min amount of memory being used by Minecraft.
*/
max: string | number;
/**
* Max amount of memory being used by Minecraft.
*/
min: string | number;
};
/**
* Path to Forge Jar.
*
* Versions below 1.13 should be the "universal" jar while versions above 1.13+ should be the "installer" jar
*/
forge?: string;
/**
* Path to the JRE executable file, will default to java if not entered.
*/
javaPath?: string;
server?: {
/**
* Host url to the server, don't include the port.
*/
host: string;
/**
* Port of the host url
*
* @default 25565
*/
port?: string;
};
proxy?: {
/**
* Host url to the proxy, don't include the port.
*/
host: string;
/**
* Username for the proxy.
*
* @default 8080
*/
port?: string;
/**
* Username for the proxy.
*/
username?: string;
/**
* Password for the proxy.
*/
password?: string;
};
/**
* Timeout on download requests.
*/
timeout?: number;
window?: {
width?: number;
height?: number;
fullscreen?: boolean;
};
overrides?: IOverrides;
authorization: Promise<IUser>;
}
interface IUser {
access_token: string;
client_token: string;
uuid: string;
name: string;
user_properties: Partial<any>;
}
interface IProfile {
id: number;
name: string;
}
interface IAuthenticator {
/**
* @param username email if using a password, else the username
* @param password password for mojang account
*/
getAuth(username: string, password?: string): Promise<IUser>;
/**
*
* @param access_token Token being checked if it can be used to login with (online mode)
* @param client_token Client token being checked to see if there was a change of client (online mode)
*/
validate(
access_token: string,
client_token: string
): Promise<boolean | Partial<any>>;
/**
*
* @param access_token Token being checked if it can be used to login with (online mode)
* @param client_token Client token being checked to see if there was a change of client (online mode)
*/
refreshAuth(
access_token: string,
client_token: string,
selectedProfile: IProfile
): Promise<IUser>;
/**
*
* @param access_token Token being checked if it can be used to login with (online mode)
* @param client_token Client token being checked to see if there was a change of client (online mode)
*/
invalidate(
access_token: string,
client_token: string
): Promise<boolean | Partial<any>>;
/**
* @param username email if using a password, else the username
* @param password password for mojang account
*/
signOut(
username: string,
password: string
): Promise<boolean | Partial<any>>;
changeApiUrl(url: string): void;
}
import { EventEmitter } from 'events'
import { ChildProcessWithoutNullStreams } from 'child_process'
export class Client extends EventEmitter {
launch(options: ILauncherOptions): ChildProcessWithoutNullStreams | null;
}
export const Authenticator: IAuthenticator;
}

2
package-lock.json generated
View file

@ -1,6 +1,6 @@
{ {
"name": "minecraft-launcher-core", "name": "minecraft-launcher-core",
"version": "3.14.6", "version": "3.16.1",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {