mirror of
https://github.com/artegoser/pimi-launcher-core.git
synced 2024-11-22 12:16:21 +03:00
Change how authentication gets passed
I was making a launcher of my own, and I found it very hard to juggle with having the auth in the options since I needed to set the client events before I actaully had the users login. This will fix the issue i was running into!
This commit is contained in:
parent
69ec61f56e
commit
3f0ceae5b6
3 changed files with 16 additions and 5 deletions
|
@ -18,7 +18,6 @@ https://discord.gg/8uYVbXP
|
||||||
const { Client, Authenticator } = require('minecraft-launcher-core');
|
const { Client, Authenticator } = require('minecraft-launcher-core');
|
||||||
|
|
||||||
let opts = {
|
let opts = {
|
||||||
authorization: async () => { return await Authenticator.getAuth(username, password) },
|
|
||||||
clientPackage: null,
|
clientPackage: null,
|
||||||
root: "./minecraft",
|
root: "./minecraft",
|
||||||
os: "windows",
|
os: "windows",
|
||||||
|
@ -33,7 +32,7 @@ let opts = {
|
||||||
}
|
}
|
||||||
|
|
||||||
const launcher = new Client(opts);
|
const launcher = new Client(opts);
|
||||||
launcher.launch();
|
launcher.launch(Authenticator.getAuth(username, password));
|
||||||
|
|
||||||
launcher.on('debug', (e) => console.log(e));
|
launcher.on('debug', (e) => console.log(e));
|
||||||
launcher.on('data', (e) => console.log(e));
|
launcher.on('data', (e) => console.log(e));
|
||||||
|
@ -45,7 +44,6 @@ launcher.on('error', (e) => console.log(e));
|
||||||
|
|
||||||
| Parameter | Type | Description | Required |
|
| Parameter | Type | Description | Required |
|
||||||
|--------------------------|----------|-------------------------------------------------------------------------------------------|----------|
|
|--------------------------|----------|-------------------------------------------------------------------------------------------|----------|
|
||||||
| `options.authorization` | Object | The result from `getAuth` function, allows the client to login in online or offline mode. | True |
|
|
||||||
| `options.clientPackage` | String | Path to the client package zip file. | False |
|
| `options.clientPackage` | String | Path to the client package zip file. | 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. like `C:/Users/user/AppData/Roaming/.mc`, | True |
|
||||||
| `options.os` | String | windows, osx or linux, | True |
|
| `options.os` | String | windows, osx or linux, | True |
|
||||||
|
@ -73,6 +71,11 @@ if you don't provide downloads url downloads like Forge and Fabric. Still need t
|
||||||
| `close` | Promise | Closes current client |
|
| `close` | Promise | Closes current client |
|
||||||
| `restart`| Promise | Restarts by closing the current client then relaunching it with the specified `options` |
|
| `restart`| Promise | Restarts by closing the current client then relaunching it with the specified `options` |
|
||||||
|
|
||||||
|
##### launch
|
||||||
|
| Parameter | Type | Description | Required |
|
||||||
|
|-----------|--------|--------------------------------------------------------------|----------|
|
||||||
|
| `authentication` | Object | Result from `getAuth` or the getAuth function itself. | True |
|
||||||
|
|
||||||
#### Authenticator Functions
|
#### Authenticator Functions
|
||||||
|
|
||||||
##### getAuth
|
##### getAuth
|
||||||
|
|
|
@ -14,7 +14,15 @@ class MCLCore extends EventEmitter {
|
||||||
this.pid = null;
|
this.pid = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
async launch() {
|
async launch(authorization) {
|
||||||
|
if(!authorization) throw Error('No authorization to launch the client with!');
|
||||||
|
|
||||||
|
if({}.toString.call(authorization) === "[object Promise]") {
|
||||||
|
this.options.authorization = await authorization;
|
||||||
|
} else {
|
||||||
|
this.options.authorization = authorization
|
||||||
|
}
|
||||||
|
|
||||||
this.options.root = path.resolve(this.options.root);
|
this.options.root = path.resolve(this.options.root);
|
||||||
if(!fs.existsSync(this.options.root)) {
|
if(!fs.existsSync(this.options.root)) {
|
||||||
this.emit('debug', '[MCLC]: Attempting to create root folder');
|
this.emit('debug', '[MCLC]: Attempting to create root folder');
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "minecraft-launcher-core",
|
"name": "minecraft-launcher-core",
|
||||||
"version": "3.0.2",
|
"version": "3.1.0",
|
||||||
"description": "Module that downloads Minecraft assets and runs Minecraft. Also Supports Forge",
|
"description": "Module that downloads Minecraft assets and runs Minecraft. Also Supports Forge",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
Loading…
Add table
Reference in a new issue