UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

50 lines (43 loc) 5.09 kB
'use strict'; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } }); const world_providers_BaseProvider = require('../BaseProvider.cjs.cjs'); const fs = require('node:fs'); const path = require('node:path'); const _interopDefault = e => e && e.__esModule ? e : { default: e }; const fs__default = /*#__PURE__*/_interopDefault(fs); const path__default = /*#__PURE__*/_interopDefault(path); const DEFAULT_FOLDERS = ["data", "entities", "playerdata", "region"]; class Anvil extends world_providers_BaseProvider.default { constructor(folderPath, server) { super(folderPath, server); } async prepareFolderStructure() { if (!fs__default.default.existsSync(this.path)) { await fs__default.default.promises.mkdir(this.path, { recursive: true }); } await Promise.all( DEFAULT_FOLDERS.map((dir) => path__default.default.join(this.path, dir)).filter((dir) => !fs__default.default.existsSync(dir)).map((dir) => fs__default.default.promises.mkdir(dir, { recursive: true })) ); } /** * On enable hook. * @group Lifecycle */ async enable() { await this.prepareFolderStructure(); } /** * On disable hook. * @group Lifecycle */ async disable() { } async readChunk(cx, cz, seed, generator, config) { return generator.generateChunk(cx, cz, seed, config); } async writeChunk(_chunk) { return; } } exports.default = Anvil; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQW52aWwuY2pzLmNqcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3dvcmxkL3Byb3ZpZGVycy9hbnZpbC9BbnZpbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBTZXJ2ZXIgZnJvbSAnLi4vLi4vLi4vU2VydmVyJztcbmltcG9ydCB0eXBlIHsgR2VuZXJhdG9yIH0gZnJvbSAnLi4vLi4vR2VuZXJhdG9yJztcbmltcG9ydCB0eXBlIENodW5rIGZyb20gJy4uLy4uL2NodW5rL0NodW5rJztcbmltcG9ydCBCYXNlUHJvdmlkZXIgZnJvbSAnLi4vQmFzZVByb3ZpZGVyJztcblxuaW1wb3J0IGZzIGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcblxuY29uc3QgREVGQVVMVF9GT0xERVJTID0gWydkYXRhJywgJ2VudGl0aWVzJywgJ3BsYXllcmRhdGEnLCAncmVnaW9uJ107XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFudmlsIGV4dGVuZHMgQmFzZVByb3ZpZGVyIHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoZm9sZGVyUGF0aDogc3RyaW5nLCBzZXJ2ZXI6IFNlcnZlcikge1xuICAgICAgICBzdXBlcihmb2xkZXJQYXRoLCBzZXJ2ZXIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgcHJlcGFyZUZvbGRlclN0cnVjdHVyZSgpIHtcbiAgICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKHRoaXMucGF0aCkpIHtcbiAgICAgICAgICAgIGF3YWl0IGZzLnByb21pc2VzLm1rZGlyKHRoaXMucGF0aCwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgICAgIERFRkFVTFRfRk9MREVSUy5tYXAoKGRpcikgPT4gcGF0aC5qb2luKHRoaXMucGF0aCwgZGlyKSlcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChkaXIpID0+ICFmcy5leGlzdHNTeW5jKGRpcikpXG4gICAgICAgICAgICAgICAgLm1hcCgoZGlyKSA9PiBmcy5wcm9taXNlcy5ta2RpcihkaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9uIGVuYWJsZSBob29rLlxuICAgICAqIEBncm91cCBMaWZlY3ljbGVcbiAgICAgKi9cbiAgICBwdWJsaWMgYXN5bmMgZW5hYmxlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLnByZXBhcmVGb2xkZXJTdHJ1Y3R1cmUoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogT24gZGlzYWJsZSBob29rLlxuICAgICAqIEBncm91cCBMaWZlY3ljbGVcbiAgICAgKi9cbiAgICBwdWJsaWMgYXN5bmMgZGlzYWJsZSgpOiBQcm9taXNlPHZvaWQ+IHt9XG5cbiAgICBwdWJsaWMgYXN5bmMgcmVhZENodW5rKGN4OiBudW1iZXIsIGN6OiBudW1iZXIsIHNlZWQ6IG51bWJlciwgZ2VuZXJhdG9yOiBHZW5lcmF0b3IsIGNvbmZpZz86IGFueSk6IFByb21pc2U8Q2h1bms+IHtcbiAgICAgICAgcmV0dXJuIGdlbmVyYXRvci5nZW5lcmF0ZUNodW5rKGN4LCBjeiwgc2VlZCwgY29uZmlnKTtcbiAgICB9XG4gICAgcHVibGljIGFzeW5jIHdyaXRlQ2h1bmsoX2NodW5rOiBDaHVuayk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICAvLyBUT0RPLlxuICAgICAgICByZXR1cm47XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbIkJhc2VQcm92aWRlciIsImZzIiwicGF0aCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQVFBLE1BQU0sZUFBa0IsR0FBQSxDQUFDLE1BQVEsRUFBQSxVQUFBLEVBQVksY0FBYyxRQUFRLENBQUE7QUFFbkUsTUFBcUIsY0FBY0Esb0NBQWEsQ0FBQTtBQUFBLEVBQ3JDLFdBQUEsQ0FBWSxZQUFvQixNQUFnQixFQUFBO0FBQ25ELElBQUEsS0FBQSxDQUFNLFlBQVksTUFBTSxDQUFBO0FBQUE7QUFDNUIsRUFFQSxNQUFjLHNCQUF5QixHQUFBO0FBQ25DLElBQUEsSUFBSSxDQUFDQyxtQkFBQSxDQUFHLFVBQVcsQ0FBQSxJQUFBLENBQUssSUFBSSxDQUFHLEVBQUE7QUFDM0IsTUFBTSxNQUFBQSxtQkFBQSxDQUFHLFNBQVMsS0FBTSxDQUFBLElBQUEsQ0FBSyxNQUFNLEVBQUUsU0FBQSxFQUFXLE1BQU0sQ0FBQTtBQUFBO0FBRzFELElBQUEsTUFBTSxPQUFRLENBQUEsR0FBQTtBQUFBLE1BQ1YsZUFBZ0IsQ0FBQSxHQUFBLENBQUksQ0FBQyxHQUFBLEtBQVFDLHFCQUFLLENBQUEsSUFBQSxDQUFLLElBQUssQ0FBQSxJQUFBLEVBQU0sR0FBRyxDQUFDLENBQ2pELENBQUEsTUFBQSxDQUFPLENBQUMsR0FBUSxLQUFBLENBQUNELG1CQUFHLENBQUEsVUFBQSxDQUFXLEdBQUcsQ0FBQyxDQUNuQyxDQUFBLEdBQUEsQ0FBSSxDQUFDLEdBQVEsS0FBQUEsbUJBQUEsQ0FBRyxRQUFTLENBQUEsS0FBQSxDQUFNLEdBQUssRUFBQSxFQUFFLFNBQVcsRUFBQSxJQUFBLEVBQU0sQ0FBQztBQUFBLEtBQ2pFO0FBQUE7QUFDSjtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTUEsTUFBYSxNQUF3QixHQUFBO0FBQ2pDLElBQUEsTUFBTSxLQUFLLHNCQUF1QixFQUFBO0FBQUE7QUFDdEM7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBLE1BQWEsT0FBeUIsR0FBQTtBQUFBO0FBQUMsRUFFdkMsTUFBYSxTQUFVLENBQUEsRUFBQSxFQUFZLEVBQVksRUFBQSxJQUFBLEVBQWMsV0FBc0IsTUFBOEIsRUFBQTtBQUM3RyxJQUFBLE9BQU8sU0FBVSxDQUFBLGFBQUEsQ0FBYyxFQUFJLEVBQUEsRUFBQSxFQUFJLE1BQU0sTUFBTSxDQUFBO0FBQUE7QUFDdkQsRUFDQSxNQUFhLFdBQVcsTUFBOEIsRUFBQTtBQUVsRCxJQUFBO0FBQUE7QUFFUjs7OzsifQ==