datapack-manager
Version:
Manage your Minecraft datapacks
52 lines (46 loc) • 1.72 kB
JavaScript
;
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;