UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

47 lines (46 loc) 4.53 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); const require_runtime = require("../../../_virtual/_rolldown/runtime.cjs.cjs"); const require_world_providers_BaseProvider = require("../BaseProvider.cjs.cjs"); let node_fs = require("node:fs"); node_fs = require_runtime.__toESM(node_fs, 1); let node_path = require("node:path"); node_path = require_runtime.__toESM(node_path, 1); //#region src/world/providers/anvil/Anvil.ts var DEFAULT_FOLDERS = [ "data", "entities", "playerdata", "region" ]; var Anvil = class extends require_world_providers_BaseProvider.default { constructor(folderPath, server) { super(folderPath, server); } async prepareFolderStructure() { if (!node_fs.default.existsSync(this.path)) await node_fs.default.promises.mkdir(this.path, { recursive: true }); await Promise.all(DEFAULT_FOLDERS.map((dir) => node_path.default.join(this.path, dir)).filter((dir) => !node_fs.default.existsSync(dir)).map((dir) => node_fs.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) {} }; //#endregion exports.default = Anvil; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQW52aWwuY2pzLmNqcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvd29ybGQvcHJvdmlkZXJzL2FudmlsL0FudmlsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIFNlcnZlciBmcm9tICcuLi8uLi8uLi9TZXJ2ZXInO1xuaW1wb3J0IHR5cGUgeyBHZW5lcmF0b3IgfSBmcm9tICcuLi8uLi9HZW5lcmF0b3InO1xuaW1wb3J0IHR5cGUgQ2h1bmsgZnJvbSAnLi4vLi4vY2h1bmsvQ2h1bmsnO1xuaW1wb3J0IEJhc2VQcm92aWRlciBmcm9tICcuLi9CYXNlUHJvdmlkZXInO1xuXG5pbXBvcnQgZnMgZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuXG5jb25zdCBERUZBVUxUX0ZPTERFUlMgPSBbJ2RhdGEnLCAnZW50aXRpZXMnLCAncGxheWVyZGF0YScsICdyZWdpb24nXTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQW52aWwgZXh0ZW5kcyBCYXNlUHJvdmlkZXIge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihmb2xkZXJQYXRoOiBzdHJpbmcsIHNlcnZlcjogU2VydmVyKSB7XG4gICAgICAgIHN1cGVyKGZvbGRlclBhdGgsIHNlcnZlcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBwcmVwYXJlRm9sZGVyU3RydWN0dXJlKCkge1xuICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmModGhpcy5wYXRoKSkge1xuICAgICAgICAgICAgYXdhaXQgZnMucHJvbWlzZXMubWtkaXIodGhpcy5wYXRoLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgREVGQVVMVF9GT0xERVJTLm1hcCgoZGlyKSA9PiBwYXRoLmpvaW4odGhpcy5wYXRoLCBkaXIpKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGRpcikgPT4gIWZzLmV4aXN0c1N5bmMoZGlyKSlcbiAgICAgICAgICAgICAgICAubWFwKChkaXIpID0+IGZzLnByb21pc2VzLm1rZGlyKGRpciwgeyByZWN1cnNpdmU6IHRydWUgfSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT24gZW5hYmxlIGhvb2suXG4gICAgICogQGdyb3VwIExpZmVjeWNsZVxuICAgICAqL1xuICAgIHB1YmxpYyBhc3luYyBlbmFibGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMucHJlcGFyZUZvbGRlclN0cnVjdHVyZSgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBPbiBkaXNhYmxlIGhvb2suXG4gICAgICogQGdyb3VwIExpZmVjeWNsZVxuICAgICAqL1xuICAgIHB1YmxpYyBhc3luYyBkaXNhYmxlKCk6IFByb21pc2U8dm9pZD4ge31cblxuICAgIHB1YmxpYyBhc3luYyByZWFkQ2h1bmsoY3g6IG51bWJlciwgY3o6IG51bWJlciwgc2VlZDogbnVtYmVyLCBnZW5lcmF0b3I6IEdlbmVyYXRvciwgY29uZmlnPzogYW55KTogUHJvbWlzZTxDaHVuaz4ge1xuICAgICAgICByZXR1cm4gZ2VuZXJhdG9yLmdlbmVyYXRlQ2h1bmsoY3gsIGN6LCBzZWVkLCBjb25maWcpO1xuICAgIH1cbiAgICBwdWJsaWMgYXN5bmMgd3JpdGVDaHVuayhfY2h1bms6IENodW5rKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIC8vIFRPRE8uXG4gICAgICAgIHJldHVybjtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQVFBLElBQU0sa0JBQWtCO0NBQUM7Q0FBUTtDQUFZO0NBQWM7QUFBUTtBQUVuRSxJQUFxQixRQUFyQixjQUFtQyxxQ0FBQSxRQUFhO0NBQzVDLFlBQW1CLFlBQW9CLFFBQWdCO0VBQ25ELE1BQU0sWUFBWSxNQUFNO0NBQzVCO0NBRUEsTUFBYyx5QkFBeUI7RUFDbkMsSUFBSSxDQUFDLFFBQUEsUUFBRyxXQUFXLEtBQUssSUFBSSxHQUN4QixNQUFNLFFBQUEsUUFBRyxTQUFTLE1BQU0sS0FBSyxNQUFNLEVBQUUsV0FBVyxLQUFLLENBQUM7RUFHMUQsTUFBTSxRQUFRLElBQ1YsZ0JBQWdCLEtBQUssUUFBUSxVQUFBLFFBQUssS0FBSyxLQUFLLE1BQU0sR0FBRyxDQUFDLEVBQ2pELFFBQVEsUUFBUSxDQUFDLFFBQUEsUUFBRyxXQUFXLEdBQUcsQ0FBQyxFQUNuQyxLQUFLLFFBQVEsUUFBQSxRQUFHLFNBQVMsTUFBTSxLQUFLLEVBQUUsV0FBVyxLQUFLLENBQUMsQ0FBQyxDQUNqRTtDQUNKOzs7OztDQU1BLE1BQWEsU0FBd0I7RUFDakMsTUFBTSxLQUFLLHVCQUF1QjtDQUN0Qzs7Ozs7Q0FLQSxNQUFhLFVBQXlCLENBQUM7Q0FFdkMsTUFBYSxVQUFVLElBQVksSUFBWSxNQUFjLFdBQXNCLFFBQThCO0VBQzdHLE9BQU8sVUFBVSxjQUFjLElBQUksSUFBSSxNQUFNLE1BQU07Q0FDdkQ7Q0FDQSxNQUFhLFdBQVcsUUFBOEIsQ0FHdEQ7QUFDSiJ9