datapack-manager
Version:
Manage your Minecraft datapacks
44 lines (41 loc) • 1.4 kB
JavaScript
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 };