@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
23 lines (22 loc) • 3.33 kB
JavaScript
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