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