UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

31 lines (26 loc) 4 kB
'use strict'; Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); const world_generators_Generators = require('./generators/Generators.cjs.cjs'); class GeneratorManager { generators = /* @__PURE__ */ new Map(); constructor(server) { const keys = Object.keys(world_generators_Generators); for (const key of keys) { this.registerClassGenerator(key, world_generators_Generators[key], server); } server.getLogger().verbose(`Registered §b${keys.length}§r generator(s)!`); } registerClassGenerator(id, generator, server) { this.generators.set(id.toLowerCase(), new generator(server.getBlockManager())); server.getLogger().debug(`Generator with id §b${id}§r registered`); } getGenerator(id) { id = id.toLowerCase(); if (!this.generators.has(id)) { throw new Error(`Invalid generator with id ${id}`); } return this.generators.get(id); } } exports.GeneratorManager = GeneratorManager; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2VuZXJhdG9yTWFuYWdlci5janMuY2pzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd29ybGQvR2VuZXJhdG9yTWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBHZW5lcmF0b3JzIGZyb20gJy4vZ2VuZXJhdG9ycy9HZW5lcmF0b3JzJztcbmltcG9ydCB0eXBlIHsgR2VuZXJhdG9yIH0gZnJvbSAnLi8nO1xuaW1wb3J0IHR5cGUgU2VydmVyIGZyb20gJy4uL1NlcnZlcic7XG5pbXBvcnQgdHlwZSBCYXNlR2VuZXJhdG9yIGZyb20gJy4vQmFzZUdlbmVyYXRvcic7XG5cbmV4cG9ydCBjbGFzcyBHZW5lcmF0b3JNYW5hZ2VyIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGdlbmVyYXRvcnM6IE1hcDxzdHJpbmcsIEdlbmVyYXRvcj4gPSBuZXcgTWFwKCkgYXMgTWFwPHN0cmluZywgR2VuZXJhdG9yPjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihzZXJ2ZXI6IFNlcnZlcikge1xuICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoR2VuZXJhdG9ycyk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJDbGFzc0dlbmVyYXRvcihrZXksIChHZW5lcmF0b3JzIGFzIGFueSlba2V5XSBhcyB0eXBlb2YgQmFzZUdlbmVyYXRvciwgc2VydmVyKTtcbiAgICAgICAgfVxuICAgICAgICBzZXJ2ZXIuZ2V0TG9nZ2VyKCkudmVyYm9zZShgUmVnaXN0ZXJlZCDCp2Ike2tleXMubGVuZ3RofcKnciBnZW5lcmF0b3IocykhYCk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyQ2xhc3NHZW5lcmF0b3IoaWQ6IHN0cmluZywgZ2VuZXJhdG9yOiBhbnksIHNlcnZlcjogU2VydmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2VuZXJhdG9ycy5zZXQoaWQudG9Mb3dlckNhc2UoKSwgbmV3IGdlbmVyYXRvcihzZXJ2ZXIuZ2V0QmxvY2tNYW5hZ2VyKCkpKTtcbiAgICAgICAgc2VydmVyLmdldExvZ2dlcigpLmRlYnVnKGBHZW5lcmF0b3Igd2l0aCBpZCDCp2Ike2lkfcKnciByZWdpc3RlcmVkYCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEdlbmVyYXRvcihpZDogc3RyaW5nKTogR2VuZXJhdG9yIHtcbiAgICAgICAgaWQgPSBpZC50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICAgIGlmICghdGhpcy5nZW5lcmF0b3JzLmhhcyhpZCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBnZW5lcmF0b3Igd2l0aCBpZCAke2lkfWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmdlbmVyYXRvcnMuZ2V0KGlkKSE7XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbIkdlbmVyYXRvcnMiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUtPLE1BQU0sZ0JBQWlCLENBQUE7QUFBQSxFQUNULFVBQUEsdUJBQXlDLEdBQUksRUFBQTtBQUFBLEVBRXZELFlBQVksTUFBZ0IsRUFBQTtBQUMvQixJQUFNLE1BQUEsSUFBQSxHQUFPLE1BQU8sQ0FBQSxJQUFBLENBQUtBLDJCQUFVLENBQUE7QUFDbkMsSUFBQSxLQUFBLE1BQVcsT0FBTyxJQUFNLEVBQUE7QUFDcEIsTUFBQSxJQUFBLENBQUssc0JBQXVCLENBQUEsR0FBQSxFQUFNQSwyQkFBbUIsQ0FBQSxHQUFHLEdBQTJCLE1BQU0sQ0FBQTtBQUFBO0FBRTdGLElBQUEsTUFBQSxDQUFPLFdBQVksQ0FBQSxPQUFBLENBQVEsQ0FBZ0IsYUFBQSxFQUFBLElBQUEsQ0FBSyxNQUFNLENBQWtCLGdCQUFBLENBQUEsQ0FBQTtBQUFBO0FBQzVFLEVBRU8sc0JBQUEsQ0FBdUIsRUFBWSxFQUFBLFNBQUEsRUFBZ0IsTUFBc0IsRUFBQTtBQUM1RSxJQUFLLElBQUEsQ0FBQSxVQUFBLENBQVcsR0FBSSxDQUFBLEVBQUEsQ0FBRyxXQUFZLEVBQUEsRUFBRyxJQUFJLFNBQVUsQ0FBQSxNQUFBLENBQU8sZUFBZ0IsRUFBQyxDQUFDLENBQUE7QUFDN0UsSUFBQSxNQUFBLENBQU8sU0FBVSxFQUFBLENBQUUsS0FBTSxDQUFBLENBQUEsb0JBQUEsRUFBdUIsRUFBRSxDQUFlLGFBQUEsQ0FBQSxDQUFBO0FBQUE7QUFDckUsRUFFTyxhQUFhLEVBQXVCLEVBQUE7QUFDdkMsSUFBQSxFQUFBLEdBQUssR0FBRyxXQUFZLEVBQUE7QUFFcEIsSUFBQSxJQUFJLENBQUMsSUFBQSxDQUFLLFVBQVcsQ0FBQSxHQUFBLENBQUksRUFBRSxDQUFHLEVBQUE7QUFDMUIsTUFBQSxNQUFNLElBQUksS0FBQSxDQUFNLENBQTZCLDBCQUFBLEVBQUEsRUFBRSxDQUFFLENBQUEsQ0FBQTtBQUFBO0FBRXJELElBQU8sT0FBQSxJQUFBLENBQUssVUFBVyxDQUFBLEdBQUEsQ0FBSSxFQUFFLENBQUE7QUFBQTtBQUVyQzs7OzsifQ==