libminecraft
v1.0.3
Published
Library for managing Minecraft instances, yggdrasil authentication and Forge versions.
Downloads
4
Maintainers
Readme
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