mirror of
https://github.com/artegoser/pimi-launcher-core.git
synced 2024-11-25 05:26:22 +03:00
quickPlay support, opts.server removed
to use the old server launch arg format, use the legacy option.
This commit is contained in:
parent
08d49deb49
commit
6eefbcdf6f
4 changed files with 37 additions and 15 deletions
13
README.md
13
README.md
|
@ -2,7 +2,7 @@
|
||||||
##### This project is complete for now.
|
##### This project is complete for now.
|
||||||
[![Build Status](https://travis-ci.com/Pierce01/MinecraftLauncher-core.svg?branch=master)](https://travis-ci.com/Pierce01/MinecraftLauncher-core)
|
[![Build Status](https://travis-ci.com/Pierce01/MinecraftLauncher-core.svg?branch=master)](https://travis-ci.com/Pierce01/MinecraftLauncher-core)
|
||||||
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
|
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
|
||||||
![version](https://img.shields.io/badge/stable_version-3.16.19-blue)
|
![version](https://img.shields.io/badge/stable_version-3.17.0-blue)
|
||||||
![badge](https://img.shields.io/badge/ncurses-not_supported-purple)
|
![badge](https://img.shields.io/badge/ncurses-not_supported-purple)
|
||||||
|
|
||||||
MCLC (Minecraft Launcher Core) is a NodeJS solution for launching modded and vanilla Minecraft without having to download and format everything yourself.
|
MCLC (Minecraft Launcher Core) is a NodeJS solution for launching modded and vanilla Minecraft without having to download and format everything yourself.
|
||||||
|
@ -62,8 +62,8 @@ launcher.on('data', (e) => console.log(e));
|
||||||
| `options.clientPackage` | String | Path or URL to a zip file, which will be extracted to the root directory. (Not recommended for production use)| False |
|
| `options.clientPackage` | String | Path or URL to a zip file, which will be extracted to the root directory. (Not recommended for production use)| False |
|
||||||
| `options.removePackage` | Boolean | Option to remove the client package zip file after its finished extracting. | False |
|
| `options.removePackage` | Boolean | Option to remove the client package zip file after its finished extracting. | False |
|
||||||
| `options.installer` | String | Path to installer being executed. | False |
|
| `options.installer` | String | Path to installer being executed. | False |
|
||||||
| `options.root` | String | Path where you want the launcher to work in. like `C:/Users/user/AppData/Roaming/.mc`, | True |
|
| `options.root` | String | Path where you want the launcher to work in. `C:/Users/user/AppData/Roaming/.mc` | True |
|
||||||
| `options.cache` | String | Path where launcher files will be cached in. like `C:/Users/user/AppData/Roaming/.mc/cache`, | False |
|
| `options.cache` | String | Path where launcher files will be cached in. `C:/Users/user/AppData/Roaming/.mc/cache` | False |
|
||||||
| `options.os` | String | windows, osx or linux. MCLC will auto determine the OS if this field isn't provided. | False |
|
| `options.os` | String | windows, osx or linux. MCLC will auto determine the OS if this field isn't provided. | False |
|
||||||
| `options.customLaunchArgs`| Array | Array of custom Minecraft arguments you want to add. | False |
|
| `options.customLaunchArgs`| Array | Array of custom Minecraft arguments you want to add. | False |
|
||||||
| `options.customArgs` | Array | Array of custom Java arguments you want to add. | False |
|
| `options.customArgs` | Array | Array of custom Java arguments you want to add. | False |
|
||||||
|
@ -75,8 +75,9 @@ launcher.on('data', (e) => console.log(e));
|
||||||
| `options.memory.min` | String | Min amount of memory being used by Minecraft. | True |
|
| `options.memory.min` | String | Min amount of memory being used by Minecraft. | True |
|
||||||
| `options.forge` | String | Path to Forge Jar. (Versions below 1.13 should be the "universal" jar while versions above 1.13+ should be the "installer" jar) | False |
|
| `options.forge` | String | Path to Forge Jar. (Versions below 1.13 should be the "universal" jar while versions above 1.13+ should be the "installer" jar) | False |
|
||||||
| `options.javaPath` | String | Path to the JRE executable file, will default to `java` if not entered. | False |
|
| `options.javaPath` | String | Path to the JRE executable file, will default to `java` if not entered. | False |
|
||||||
| `options.server.host` | String | Host url to the server, don't include the port. | False |
|
| `options.quickPlay.type` | String | The type of the quickPlay session. `singleplayer` | `multiplayer` | `realms` | `legacy` | False |
|
||||||
| `options.server.port` | String | Port of the host url, will default to `25565` if not entered. | False |
|
| `options.quickPlay.identifier` | String | The folder name, server address, or realm ID, relating to the specified type. `legacy` follows `multiplayer` format. | False |
|
||||||
|
| `options.quickPlay.path` | String | The specified path for logging (relative to the run directory) | False |
|
||||||
| `options.proxy.host` | String | Host url to the proxy, don't include the port. | False |
|
| `options.proxy.host` | String | Host url to the proxy, don't include the port. | False |
|
||||||
| `options.proxy.port` | String | Port of the host proxy, will default to `8080` if not entered. | False |
|
| `options.proxy.port` | String | Port of the host proxy, will default to `8080` if not entered. | False |
|
||||||
| `options.proxy.username` | String | Username for the proxy. | False |
|
| `options.proxy.username` | String | Username for the proxy. | False |
|
||||||
|
@ -84,7 +85,7 @@ launcher.on('data', (e) => console.log(e));
|
||||||
| `options.timeout` | Integer | Timeout on download requests. | False |
|
| `options.timeout` | Integer | Timeout on download requests. | False |
|
||||||
| `options.window.width` | String | Width of the Minecraft Client. | False |
|
| `options.window.width` | String | Width of the Minecraft Client. | False |
|
||||||
| `options.window.height` | String | Height of the Minecraft Client. | False |
|
| `options.window.height` | String | Height of the Minecraft Client. | False |
|
||||||
| `options.window.fullscreen` | Boolean| Fullscreen the Minecraft Client. | False |
|
| `options.window.fullscreen`| Boolean| Fullscreen the Minecraft Client. | False |
|
||||||
| `options.overrides` | Object | Json object redefining paths for better customization. Example below. | False |
|
| `options.overrides` | Object | Json object redefining paths for better customization. Example below. | False |
|
||||||
#### IF YOU'RE NEW TO MCLC, LET IT HANDLE EVERYTHING! DO NOT USE OVERRIDES!
|
#### IF YOU'RE NEW TO MCLC, LET IT HANDLE EVERYTHING! DO NOT USE OVERRIDES!
|
||||||
```js
|
```js
|
||||||
|
|
|
@ -573,6 +573,26 @@ class Handler {
|
||||||
return newArray
|
return newArray
|
||||||
}
|
}
|
||||||
|
|
||||||
|
formatQuickPlay () {
|
||||||
|
const types = {
|
||||||
|
singleplayer: '--quickPlaySingleplayer',
|
||||||
|
multiplayer: '--quickPlayMultiplayer',
|
||||||
|
realms: '--quickPlayRealms',
|
||||||
|
legacy: null
|
||||||
|
}
|
||||||
|
const { type, identifier, path } = this.options.quickPlay
|
||||||
|
const keys = Object.keys(types)
|
||||||
|
if (!keys.includes(type)) {
|
||||||
|
this.client.emit('debug', `[MCLC]: quickPlay type is not valid. Valid types are: ${keys.join(', ')}`)
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
const returnArgs = type === 'legacy'
|
||||||
|
? ['--server', identifier.split(':')[0], '--port', identifier.split(':')[1] || '25565']
|
||||||
|
: [types[type], identifier]
|
||||||
|
if (path) returnArgs.push('--quickPlayPath', path)
|
||||||
|
return returnArgs
|
||||||
|
}
|
||||||
|
|
||||||
async getLaunchOptions (modification) {
|
async getLaunchOptions (modification) {
|
||||||
const type = modification || this.version
|
const type = modification || this.version
|
||||||
|
|
||||||
|
@ -648,10 +668,6 @@ class Handler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
args = args.filter((value) => {
|
|
||||||
return typeof value === 'string' || typeof value === 'number'
|
|
||||||
})
|
|
||||||
|
|
||||||
if (this.options.window) {
|
if (this.options.window) {
|
||||||
// eslint-disable-next-line no-unused-expressions
|
// eslint-disable-next-line no-unused-expressions
|
||||||
this.options.window.fullscreen
|
this.options.window.fullscreen
|
||||||
|
@ -662,7 +678,8 @@ class Handler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this.options.server) args.push('--server', this.options.server.host, '--port', this.options.server.port || '25565')
|
if (this.options.server) this.client.emit('debug', '[MCLC]: server and port are deprecated launch flags. Use the quickPlay field.')
|
||||||
|
if (this.options.quickPlay) args = args.concat(this.formatQuickPlay())
|
||||||
if (this.options.proxy) {
|
if (this.options.proxy) {
|
||||||
args.push(
|
args.push(
|
||||||
'--proxyHost',
|
'--proxyHost',
|
||||||
|
@ -675,7 +692,7 @@ class Handler {
|
||||||
this.options.proxy.password
|
this.options.proxy.password
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
args = args.filter(value => typeof value === 'string' || typeof value === 'number')
|
||||||
this.client.emit('debug', '[MCLC]: Set launch options')
|
this.client.emit('debug', '[MCLC]: Set launch options')
|
||||||
return args
|
return args
|
||||||
}
|
}
|
||||||
|
|
8
index.d.ts
vendored
8
index.d.ts
vendored
|
@ -11,6 +11,7 @@ declare module "minecraft-launcher-core" {
|
||||||
directory?: string;
|
directory?: string;
|
||||||
natives?: string;
|
natives?: string;
|
||||||
assetRoot?: string;
|
assetRoot?: string;
|
||||||
|
assetIndex?: string;
|
||||||
libraryRoot?: string;
|
libraryRoot?: string;
|
||||||
cwd?: string;
|
cwd?: string;
|
||||||
detached?: boolean;
|
detached?: boolean;
|
||||||
|
@ -150,6 +151,11 @@ declare module "minecraft-launcher-core" {
|
||||||
height?: number;
|
height?: number;
|
||||||
fullscreen?: boolean;
|
fullscreen?: boolean;
|
||||||
};
|
};
|
||||||
|
quickPlay?: {
|
||||||
|
type: 'singleplayer' | 'multiplayer' | 'realms' | 'legacy';
|
||||||
|
identifier: string;
|
||||||
|
path?: string;
|
||||||
|
};
|
||||||
overrides?: IOverrides;
|
overrides?: IOverrides;
|
||||||
authorization: Promise<IUser>;
|
authorization: Promise<IUser>;
|
||||||
/**
|
/**
|
||||||
|
@ -158,8 +164,6 @@ declare module "minecraft-launcher-core" {
|
||||||
cache?: string;
|
cache?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
interface IUser {
|
interface IUser {
|
||||||
access_token: string;
|
access_token: string;
|
||||||
client_token: string;
|
client_token: string;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "minecraft-launcher-core",
|
"name": "minecraft-launcher-core",
|
||||||
"version": "3.16.19",
|
"version": "3.17.0",
|
||||||
"description": "Lightweight module that downloads and runs Minecraft using javascript / NodeJS",
|
"description": "Lightweight module that downloads and runs Minecraft using javascript / NodeJS",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
Loading…
Add table
Reference in a new issue