emc-core-tropolia v1.3.1
EMC-Core
NodeJS Module for Electron Minecraft launcher
Avantages :dizzy:
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
Install Client
Quick Start :zap:
git clone https://github.com/Zeldown/EMC-Core-quick-start.git
cd EMC-Core-quick-start
npm install
npm startInstallation :package:
npm install emc-coreUsage :triangular_flag_on_post:
Require library
const { MCAuth, MCLaunch } = require('emc-core');Create and Init launcher var MCLaunch
const launcher = new MCLaunch();Authentification :lock:
Mojang
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({})
}Microsoft
InDev
Launch :rocket:
Options
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 |
Launching
launcher.launch(opts);Debugging :bug:
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
});Install Server :construction:
:rotating_light: You must have a web hosting
PreBuild Server Version
- 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,
...
}Build EMC-Core-Server with builder.js
- 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) |
Build custom EMC-Core-Server
- Create a folder with the file reader.php
- Create a folder java
- Put an archive of java named java.zip in
javafolder (exemple : java.zip) - Create a folder files
- Put all files of minecraft in folder
fileslike 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,
...
}EMC-Core-Server schema
Here is a schema of a classic emc-core-server archive

EMC-Core-Server with forge
- 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)
Credits :tada:
Based on code of Pierce01 :heart:
Special thanks to Faustin#8347 for code help & readme review
Thanks to Relax#3333 for funding