@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
50 lines (43 loc) • 5.09 kB
JavaScript
;
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==