UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

23 lines (22 loc) 3.33 kB
import { Generators_exports } from "./generators/Generators.es.js"; //#region src/world/GeneratorManager.ts var GeneratorManager = class { generators = /* @__PURE__ */ new Map(); constructor(server) { const keys = Object.keys(Generators_exports); for (const key of keys) this.registerClassGenerator(key, Generators_exports[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); } }; //#endregion export { GeneratorManager }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2VuZXJhdG9yTWFuYWdlci5lcy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvd29ybGQvR2VuZXJhdG9yTWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBHZW5lcmF0b3JzIGZyb20gJy4vZ2VuZXJhdG9ycy9HZW5lcmF0b3JzJztcbmltcG9ydCB0eXBlIHsgR2VuZXJhdG9yIH0gZnJvbSAnLi8nO1xuaW1wb3J0IHR5cGUgU2VydmVyIGZyb20gJy4uL1NlcnZlcic7XG5pbXBvcnQgdHlwZSBCYXNlR2VuZXJhdG9yIGZyb20gJy4vQmFzZUdlbmVyYXRvcic7XG5cbmV4cG9ydCBjbGFzcyBHZW5lcmF0b3JNYW5hZ2VyIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGdlbmVyYXRvcnM6IE1hcDxzdHJpbmcsIEdlbmVyYXRvcj4gPSBuZXcgTWFwKCkgYXMgTWFwPHN0cmluZywgR2VuZXJhdG9yPjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihzZXJ2ZXI6IFNlcnZlcikge1xuICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoR2VuZXJhdG9ycyk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJDbGFzc0dlbmVyYXRvcihrZXksIChHZW5lcmF0b3JzIGFzIGFueSlba2V5XSBhcyB0eXBlb2YgQmFzZUdlbmVyYXRvciwgc2VydmVyKTtcbiAgICAgICAgfVxuICAgICAgICBzZXJ2ZXIuZ2V0TG9nZ2VyKCkudmVyYm9zZShgUmVnaXN0ZXJlZCDCp2Ike2tleXMubGVuZ3RofcKnciBnZW5lcmF0b3IocykhYCk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyQ2xhc3NHZW5lcmF0b3IoaWQ6IHN0cmluZywgZ2VuZXJhdG9yOiBhbnksIHNlcnZlcjogU2VydmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2VuZXJhdG9ycy5zZXQoaWQudG9Mb3dlckNhc2UoKSwgbmV3IGdlbmVyYXRvcihzZXJ2ZXIuZ2V0QmxvY2tNYW5hZ2VyKCkpKTtcbiAgICAgICAgc2VydmVyLmdldExvZ2dlcigpLmRlYnVnKGBHZW5lcmF0b3Igd2l0aCBpZCDCp2Ike2lkfcKnciByZWdpc3RlcmVkYCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEdlbmVyYXRvcihpZDogc3RyaW5nKTogR2VuZXJhdG9yIHtcbiAgICAgICAgaWQgPSBpZC50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICAgIGlmICghdGhpcy5nZW5lcmF0b3JzLmhhcyhpZCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBnZW5lcmF0b3Igd2l0aCBpZCAke2lkfWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmdlbmVyYXRvcnMuZ2V0KGlkKSE7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUtBLElBQWEsbUJBQWIsTUFBOEI7Q0FDMUIsNkJBQXNELElBQUksSUFBSTtDQUU5RCxZQUFtQixRQUFnQjtFQUMvQixNQUFNLE9BQU8sT0FBTyxLQUFLLGtCQUFVO0VBQ25DLEtBQUssTUFBTSxPQUFPLE1BQ2QsS0FBSyx1QkFBdUIsS0FBTSxtQkFBbUIsTUFBOEIsTUFBTTtFQUU3RixPQUFPLFVBQVUsRUFBRSxRQUFRLGdCQUFnQixLQUFLLE9BQU8saUJBQWlCO0NBQzVFO0NBRUEsdUJBQThCLElBQVksV0FBZ0IsUUFBc0I7RUFDNUUsS0FBSyxXQUFXLElBQUksR0FBRyxZQUFZLEdBQUcsSUFBSSxVQUFVLE9BQU8sZ0JBQWdCLENBQUMsQ0FBQztFQUM3RSxPQUFPLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixHQUFHLGNBQWM7Q0FDckU7Q0FFQSxhQUFvQixJQUF1QjtFQUN2QyxLQUFLLEdBQUcsWUFBWTtFQUVwQixJQUFJLENBQUMsS0FBSyxXQUFXLElBQUksRUFBRSxHQUN2QixNQUFNLElBQUksTUFBTSw2QkFBNkIsSUFBSTtFQUVyRCxPQUFPLEtBQUssV0FBVyxJQUFJLEVBQUU7Q0FDakM7QUFDSiJ9