NodeJS Module for Electron Minecraft launcher
EMC-Core is a upgrade of minecraft-launcher-core dev by Pierce01
- Auto check & downloading compatible java version
- Support 100% custom minecraft version
- Work with ftp without any zip file, juste drop folder in your ftp
- Auto check & delete file with bad hash & size
git clone https://github.com/Zeldown/EMC-Core-quick-start.git
cd EMC-Core-quick-start
npm install
npm start
npm install emc-core
Require library
const { MCAuth, MCLaunch } = require('emc-core');
Create and Init launcher var MCLaunch
const launcher = new MCLaunch();
let authenticator;
MCAuth.auth(username, password).then(user => {
authenticator = user;
//success
}).catch(error => {
//error
})
username => The email of mojang account
password => The password of mojang account
Return
const user = {
access_token: uuid(),
client_token: uuid(),
uuid: uuid(),
name: username,
user_properties: JSON.stringify({})
}
InDev
let opts = {
url: "http://zeldown.com/emc-core/",
overrides: {
detached: false
},
authorization: authenticator,
root: "C:/Users/guill/AppData/Roaming/.emc-core",
version: "1.15.2",
forge: "1.15.2-forge-31.2.0",
checkFiles: true,
memory: {
max: "6G",
min: "4G"
}
}
Option | Type | Description | Required |
---|---|---|---|
url | String |
Url of files to download | true |
authorization | Authentificator |
The authentificator variable get when MCAuto | true |
root | String |
The path to minecraft directory | true |
version | String |
The version of minecraft | true |
checkFiles | Boolean |
Check or not file to delete | true |
forge | String |
The name of used forge | false |
memory | Array |
The informations of memory, contains max and min | false |
launcher.launch(opts);
To get debug use launcher.on('xxx', (e) => ...)
debug
call when a debug log is print by Minecraft
launcher.on('debug', (e) => console.log("[DEBUG]" + e));
data
call when a data log is print by Minecraft
launcher.on('data', (e) => console.log("[DATA]" + e));
error
call when a error log is print by Minecraft
launcher.on('error', (e) => console.log("[ERROR]" + e));
download-status
call when a download file progress
launcher.on('download-status', (e) => {
//update progress bar
});
Name | Type | Description |
---|---|---|
name | String |
The name of current file is downloading |
type | String |
The type of file (assets, natives, java, mods, ...) |
currentDownloadedBytes | int |
The count of bytes downloaded of file |
currentBytesToDownload | int |
The count of bytes to download of file |
downloadedBytes | int |
The count of bytes downloaded of folder |
bytesToDownload | int |
The count of bytes to download of folder |
downloadFiles | int |
The count of file downloaded of folder |
filesToDownload | int |
The count of file to download of folder |
verification-status
call when a verification of files progress
launcher.on('verification-status', (e) => {
//update verification bar
});
Name | Type | Description |
---|---|---|
name | String |
The url of verified file |
current | int |
The count of files checked |
total | int |
The count of files to check |
launch
call when Minecraft start launching
launcher.on('launch', (e) => {
//Minecraft start
});
🚨 You must have a web hosting
- Download EMC-Core-Server of your version at https://github.com/Zeldown/EMC-Core/releases
- Extract archive on your computer
- In EMC-Core-Server/files put your files to download (mods, config, etc). Default files in folder is mandatory (assets, libraries, natives, versions)
- Put the folder EMC-Core-Server to your web hosting (exemple: upload folder EMC-Core-Server at https://exemple.com/)
- Set url option of launch options to url of content of EMC-Core-Server (exemple: https://exemple.com/EMC-Core-Server)
let opts = {
url: url_of_emc-core-server,
...
}
- Clone EMC-Core project at https://github.com/Zeldown/EMC-Core
- Extract archive on your computer
- Go into emc-core extracted folder
- run
npm i
- run
node utils/builder.js --version="@version" --path="@path"
Name | Type | Description |
---|---|---|
@version | String |
The name of minecraft vanilla version (e.g. 1.15.2) |
@path | String |
The full path where build will be created (path must be exists) |
- Create a folder with the file reader.php
- Create a folder java
- Put an archive of java named java.zip in
java
folder (exemple : java.zip) - Create a folder files
- Put all files of minecraft in folder
files
like assets, library, natives, mods, versions - Put your custom folder to your web hosting (exemple: upload folder My-Version at https://exemple.com/)
- Set url option of launch options to url of content of custom folder (exemple: https://exemple.com/My-Version)
let opts = {
url: url_of_your_uploaded_version,
...
}
Here is a schema of a classic emc-core-server archive
- Build a vanilla emc-core-server version with the base version of your forge (e.g. 1.15.2)
- Add your forge version files (@forge_version.json & @forge_version.jar) into EMC-Core-Server/versions/@forge_version (e.g. versions/1.15.2-forge-31.2.0/)
- Add forge libraries into EMC-Core-Server/libraries
(natives & assets are same in vanilla and forge version)
Based on code of Pierce01 ❤️
Special thanks to Faustin#8347 for code help & readme review
Thanks to Relax#3333 for funding