UNPKG

datapack-manager

Version:
52 lines (46 loc) 1.72 kB
#!/usr/bin/env node 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } var _tslib = require('./_virtual/_tslib.js'); var fs = require('fs'); var fs__default = _interopDefault(fs); var minecraftDatapack = require('@throw-out-error/minecraft-datapack'); var pth = _interopDefault(require('path')); var os = _interopDefault(require('os')); function getMinecraftPath() { switch (os.platform()) { case "win32": return pth.join(os.homedir(), "AppData/Roaming/.minecraft"); case "darwin": return pth.join(os.homedir(), "Library/Application Support/minecraft"); case "linux": default: return pth.join(os.homedir(), ".minecraft"); } } function datapackFromPath(path) { return _tslib.__awaiter(this, void 0, void 0, function* () { const stats = yield fs.promises.stat(path); if (!stats.isDirectory()) { throw Error("Invalid datapack. Not a directory."); } let json; try { json = yield fs.promises.readFile(pth.join(path, "pack.mcmeta")); } catch (e) { throw Error("Invalid datapack. No pack.mcmeta."); } let meta; try { meta = JSON.parse(json.toString()); } catch (e) { throw Error("Invalid datapack. Invalid pack.mcmeta"); } return new minecraftDatapack.Datapack(pth.basename(path), path, meta.pack); }); } exports.datapackFromPath = datapackFromPath; exports.getMinecraftPath = getMinecraftPath;