UNPKG

datapack-manager

Version:
44 lines (41 loc) 1.4 kB
#!/usr/bin/env node import { __awaiter } from './_virtual/_tslib.js'; import { promises } from 'fs'; import { Datapack } from '@throw-out-error/minecraft-datapack'; import pth$1 from 'path'; import os$1 from 'os'; function getMinecraftPath() { switch (os$1.platform()) { case "win32": return pth$1.join(os$1.homedir(), "AppData/Roaming/.minecraft"); case "darwin": return pth$1.join(os$1.homedir(), "Library/Application Support/minecraft"); case "linux": default: return pth$1.join(os$1.homedir(), ".minecraft"); } } function datapackFromPath(path) { return __awaiter(this, void 0, void 0, function* () { const stats = yield promises.stat(path); if (!stats.isDirectory()) { throw Error("Invalid datapack. Not a directory."); } let json; try { json = yield promises.readFile(pth$1.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 Datapack(pth$1.basename(path), path, meta.pack); }); } export { datapackFromPath, getMinecraftPath };