1.0.3 • Published 5 years ago

libminecraft v1.0.3

Weekly downloads
3
License
MIT
Repository
gitlab
Last release
5 years ago

libminecraft

Library for interacting with the Minecraft assets API, Forge website and for launching Minecraft.

Usage

Install from npm:

npm install --save libminecraft

And import:

import { Install, Launch, ... } from 'libminecraft';

Features

  • Download and install Minecraft
let manifest = await GetVersionManifest(); // all functions are exported in index.ts
let index = GetVersionIndex(manifest); // may be useful in some cases, creates id-version object

let folder = new MinecraftFolder('path', 'to', 'resourceFolder');
let meta = await GetVersionMeta(folder, index['1.12.2']);

// install using the meta we selected
await Install(folder, meta, /** optional */ (progress) => console.log(progress));
// typescript types should give you all the info you need about progress
  • Launch Minecraft
let resourcePath = new MinecraftFolder('.minecraft'); // assets, versions, etc
let gameData = new MinecraftFolder('.game'); // saves, logs, etc
let version = await GetVersionMeta(folder, '1.12.2'); // load version back up from disk

// we can now launch
await Launch({
  resourcePath,
  gameData,
  java: 'java', // path to java executable
  version,
  auth?: /** see below for getting an Account object */,
  resolution?: { width: 123, height: 123 }
});
  • Install Forge Modloader
let page = await GetForgeVersions('1.12.2'); // be sure to check if Forge supports the version
let index = GetForgeIndex(page); // likewise we can get an index, if needed

// install the Forge version, just install the first one we know of
let folder = new MinecraftFolder('.minecraft');
await InstallForgeVersion(folder, page.versions[0], /** optional */ (progress) => console.log(progress));
// progress update is likewise available
  • Authenticate through Yggdrasil
// simply pass credentials and an account object will be returned
let account = await Authenticate('username', 'password');

// account can be passed to Launch
// you should probably save the account object instead of credentials
// then later you can refresh it like so:

let newAccount = await Refresh(account);
// newAccount has a new accessToken hence you should overwrite the old account with this