UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

27 lines (24 loc) 3.88 kB
import * as world_generators_Generators from './generators/Generators.es.js'; 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); } } export { GeneratorManager }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2VuZXJhdG9yTWFuYWdlci5lcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3dvcmxkL0dlbmVyYXRvck1hbmFnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgR2VuZXJhdG9ycyBmcm9tICcuL2dlbmVyYXRvcnMvR2VuZXJhdG9ycyc7XG5pbXBvcnQgdHlwZSB7IEdlbmVyYXRvciB9IGZyb20gJy4vJztcbmltcG9ydCB0eXBlIFNlcnZlciBmcm9tICcuLi9TZXJ2ZXInO1xuaW1wb3J0IHR5cGUgQmFzZUdlbmVyYXRvciBmcm9tICcuL0Jhc2VHZW5lcmF0b3InO1xuXG5leHBvcnQgY2xhc3MgR2VuZXJhdG9yTWFuYWdlciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBnZW5lcmF0b3JzOiBNYXA8c3RyaW5nLCBHZW5lcmF0b3I+ID0gbmV3IE1hcCgpIGFzIE1hcDxzdHJpbmcsIEdlbmVyYXRvcj47XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3Ioc2VydmVyOiBTZXJ2ZXIpIHtcbiAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKEdlbmVyYXRvcnMpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyQ2xhc3NHZW5lcmF0b3Ioa2V5LCAoR2VuZXJhdG9ycyBhcyBhbnkpW2tleV0gYXMgdHlwZW9mIEJhc2VHZW5lcmF0b3IsIHNlcnZlcik7XG4gICAgICAgIH1cbiAgICAgICAgc2VydmVyLmdldExvZ2dlcigpLnZlcmJvc2UoYFJlZ2lzdGVyZWQgwqdiJHtrZXlzLmxlbmd0aH3Cp3IgZ2VuZXJhdG9yKHMpIWApO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3RlckNsYXNzR2VuZXJhdG9yKGlkOiBzdHJpbmcsIGdlbmVyYXRvcjogYW55LCBzZXJ2ZXI6IFNlcnZlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmdlbmVyYXRvcnMuc2V0KGlkLnRvTG93ZXJDYXNlKCksIG5ldyBnZW5lcmF0b3Ioc2VydmVyLmdldEJsb2NrTWFuYWdlcigpKSk7XG4gICAgICAgIHNlcnZlci5nZXRMb2dnZXIoKS5kZWJ1ZyhgR2VuZXJhdG9yIHdpdGggaWQgwqdiJHtpZH3Cp3IgcmVnaXN0ZXJlZGApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRHZW5lcmF0b3IoaWQ6IHN0cmluZyk6IEdlbmVyYXRvciB7XG4gICAgICAgIGlkID0gaWQudG9Mb3dlckNhc2UoKTtcblxuICAgICAgICBpZiAoIXRoaXMuZ2VuZXJhdG9ycy5oYXMoaWQpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZ2VuZXJhdG9yIHdpdGggaWQgJHtpZH1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5nZW5lcmF0b3JzLmdldChpZCkhO1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6WyJHZW5lcmF0b3JzIl0sIm1hcHBpbmdzIjoiOztBQUtPLE1BQU0sZ0JBQWlCLENBQUE7QUFBQSxFQUNULFVBQUEsdUJBQXlDLEdBQUksRUFBQTtBQUFBLEVBRXZELFlBQVksTUFBZ0IsRUFBQTtBQUMvQixJQUFNLE1BQUEsSUFBQSxHQUFPLE1BQU8sQ0FBQSxJQUFBLENBQUtBLDJCQUFVLENBQUE7QUFDbkMsSUFBQSxLQUFBLE1BQVcsT0FBTyxJQUFNLEVBQUE7QUFDcEIsTUFBQSxJQUFBLENBQUssc0JBQXVCLENBQUEsR0FBQSxFQUFNQSwyQkFBbUIsQ0FBQSxHQUFHLEdBQTJCLE1BQU0sQ0FBQTtBQUFBO0FBRTdGLElBQUEsTUFBQSxDQUFPLFdBQVksQ0FBQSxPQUFBLENBQVEsQ0FBZ0IsYUFBQSxFQUFBLElBQUEsQ0FBSyxNQUFNLENBQWtCLGdCQUFBLENBQUEsQ0FBQTtBQUFBO0FBQzVFLEVBRU8sc0JBQUEsQ0FBdUIsRUFBWSxFQUFBLFNBQUEsRUFBZ0IsTUFBc0IsRUFBQTtBQUM1RSxJQUFLLElBQUEsQ0FBQSxVQUFBLENBQVcsR0FBSSxDQUFBLEVBQUEsQ0FBRyxXQUFZLEVBQUEsRUFBRyxJQUFJLFNBQVUsQ0FBQSxNQUFBLENBQU8sZUFBZ0IsRUFBQyxDQUFDLENBQUE7QUFDN0UsSUFBQSxNQUFBLENBQU8sU0FBVSxFQUFBLENBQUUsS0FBTSxDQUFBLENBQUEsb0JBQUEsRUFBdUIsRUFBRSxDQUFlLGFBQUEsQ0FBQSxDQUFBO0FBQUE7QUFDckUsRUFFTyxhQUFhLEVBQXVCLEVBQUE7QUFDdkMsSUFBQSxFQUFBLEdBQUssR0FBRyxXQUFZLEVBQUE7QUFFcEIsSUFBQSxJQUFJLENBQUMsSUFBQSxDQUFLLFVBQVcsQ0FBQSxHQUFBLENBQUksRUFBRSxDQUFHLEVBQUE7QUFDMUIsTUFBQSxNQUFNLElBQUksS0FBQSxDQUFNLENBQTZCLDBCQUFBLEVBQUEsRUFBRSxDQUFFLENBQUEsQ0FBQTtBQUFBO0FBRXJELElBQU8sT0FBQSxJQUFBLENBQUssVUFBVyxDQUFBLEdBQUEsQ0FBSSxFQUFFLENBQUE7QUFBQTtBQUVyQzs7OzsifQ==