Skip to content

Lightweight module that downloads and runs Minecraft using javascript / NodeJS

License

Notifications You must be signed in to change notification settings

CreateLumina/minecraft-utils-pierce

 
 

Repository files navigation

MCLC

MIT Version Workflow

MCLC (Minecraft Launcher Core) is a NodeJS solution for launching modded and vanilla Minecraft without having to download and format everything yourself. Basically a core for your Electron or script based launcher.

Getting support

Do you need to get in contact with me or get help? Join my Discord Server

Discord

Installing

# npm
npm i minecraft-launcher-core

# Yarn
yarn add minecraft-launcher-core

# pnpm
pnpm add minecraft-launcher-core

Example

import { Client, offline, onLog } from 'minecraft-launcher-core';

const client = new Client({
    // This will launch in offline mode, if you want to use
    // a Microsoft Account, see details below
    authorization: offline('Steve'),
    // 1.14.4 is the default version, you can remove it if you are using it
    version: {
        number: '1.14.4',
        type: 'release',
    },
});

await client.install();
await client.start();

onLog('debug', (e) => console.log(e));
onLog('data', (e) => console.log(e));

Using a Microsoft Account

In order to authenticate with a Microsoft Account, you would need to use MSMC. Make sure to install it, as it doesn't come by default.

Example

import { Client, onLog } from 'minecraft-launcher-core';
import { Auth } from 'msmc';

const authManager = new Auth('select_account');
const xboxManager = await authManager.launch('raw'); // Can be 'electron' or 'nwjs'
const token = await xboxManager.getMinecraft();

const client = new Client({
    authorization: token.mclc(),
});

await client.install();
await client.start();

onLog('debug', (e) => console.log(e));
onLog('data', (e) => console.log(e));

Modded versions

MCLC only supports installing Vanilla automatically, but it also supports installing Forge and NeoForge for you (you would need to install the installer yourself)

Example

import { join } from 'path';
import { Client, offline, onLog } from 'minecraft-launcher-core';

const client = new Client({
    authorization: offline('Steve'),
    version: {
        number: '1.14.4',
        type: 'release',
        forge: join('path', 'to', 'forge-installer.jar'),
    },
});

await client.install();
await client.start();

onLog('debug', (e) => console.log(e));
onLog('data', (e) => console.log(e));

Contributors

These are the people that helped out that aren't listed here!

  • Pyker - Forge dependency parsing.
  • Khionu - Research on how Minecraft's natives are handled.
  • Coding-Kiwi - Pointed out I didn't pass clientToken in initial authentication function.
  • maxbsoft - Pointed out that a certain JVM option causes OSX Minecraft to bug out.
  • Noé - Pointed out launch args weren't being passed for Forge 1.13+.

Related projects

  • MSMC - Allows using a Microsoft Account for the authorization
  • tomate-loaders - Downloads mod loaders automatically

About

Lightweight module that downloads and runs Minecraft using javascript / NodeJS

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 98.3%
  • JavaScript 1.7%