UNPKG

ori-core-java

Version:

Simple Minecraft library for launching minecraft game written in Typescript.

88 lines (87 loc) 3.46 kB
"use strict"; /** * @author Cosmic-fi * @license CC-BY-NC 4.0 - https://creativecommons.org/licenses/by-nc/4.0/ */ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const events_1 = require("events"); const index_js_1 = __importDefault(require("../Minecraft-Loader/index.js")); class MinecraftLoader { constructor(options) { this.options = options; this.on = events_1.EventEmitter.prototype.on; this.emit = events_1.EventEmitter.prototype.emit; } async GetLoader(version, javaPath) { let loader = new index_js_1.default({ path: `${this.options.path}/loader/${this.options.loader.type}`, downloadFileMultiple: this.options.downloadFileMultiple, loader: { type: this.options.loader.type, version: version, build: this.options.loader.build, config: { javaPath: javaPath, minecraftJar: `${this.options.path}/versions/${version}/${version}.jar`, minecraftJson: `${this.options.path}/versions/${version}/${version}.json` } } }); return await new Promise((resolve, reject) => { loader.install(); loader.on('json', (json) => { let loaderJson = json; loaderJson.libraries = loaderJson.libraries.map((lib) => { lib.loader = `${this.options.path}/loader/${this.options.loader.type}`; return lib; }); resolve(loaderJson); }); loader.on('extract', (extract) => { this.emit('extract', extract); }); loader.on('progress', (progress, size, element) => { this.emit('progress', progress, size, element); }); loader.on('check', (progress, size, element) => { this.emit('check', progress, size, element); }); loader.on('patch', (patch) => { this.emit('patch', patch); }); loader.on('error', (err) => { reject(err); }); }); } async GetArguments(json, version) { if (json === null) { return { game: [], jvm: [] }; } let moddeArguments = json.arguments; if (!moddeArguments) return { game: [], jvm: [] }; let Arguments = {}; if (moddeArguments.game) Arguments.game = moddeArguments.game; if (moddeArguments.jvm) Arguments.jvm = moddeArguments.jvm.map(jvm => { return jvm .replace(/\${version_name}/g, version) .replace(/\${library_directory}/g, `${this.options.path}/loader/${this.options.loader.type.toLowerCase()}/libraries`) .replace(/\${classpath_separator}/g, process.platform === 'win32' ? ';' : ':'); }); return { game: Arguments.game || [], jvm: Arguments.jvm || [], mainClass: json.mainClass }; } } exports.default = MinecraftLoader;