UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

50 lines (45 loc) 6.98 kB
'use strict'; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } }); const entity_Entities = require('../../entity/Entities.cjs.cjs'); const brigadier = require('@jsprismarine/brigadier'); const command_CommandArguments = require('../CommandArguments.cjs.cjs'); const command_Command = require('../Command.cjs.cjs'); class SummonCommand extends command_Command.Command { constructor() { super({ id: "minecraft:summon", description: "Summon an entity.", permission: "minecraft.command.summon" }); } async register(dispatcher) { dispatcher.register( brigadier.literal("summon").then( brigadier.argument("entity", new command_CommandArguments.CommandArgumentMob()).executes(async (context) => { const source = context.getSource(); const entityId = context.getArgument("entity").toLowerCase(); let Entity; if (!entityId.includes(":")) { Entity = Object.entries(entity_Entities).find( ([, value]) => value.MOB_ID === `minecraft:${entityId}` )?.[1]; } else { Entity = Object.entries(entity_Entities).find(([, value]) => value.MOB_ID === entityId)?.[1]; } if (!Entity) throw new Error(`No such entity "${entityId}"!`); const mob = new Entity(source.getWorld(), source.getServer()); await source.getWorld().addEntity(mob); await mob.setPosition({ position: source.getPosition() }); const res = `Summoned ${Entity.MOB_ID}`; await source.sendMessage(res); return res; }) // ) ) ); } } exports.default = SummonCommand; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3VtbW9uQ29tbWFuZC5janMuY2pzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZC92YW5pbGxhL1N1bW1vbkNvbW1hbmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgRW50aXRpZXMgZnJvbSAnLi4vLi4vZW50aXR5L0VudGl0aWVzJztcblxuaW1wb3J0IHR5cGUgeyBDb21tYW5kRGlzcGF0Y2hlciB9IGZyb20gJ0Bqc3ByaXNtYXJpbmUvYnJpZ2FkaWVyJztcbmltcG9ydCB7IGFyZ3VtZW50LCBsaXRlcmFsIH0gZnJvbSAnQGpzcHJpc21hcmluZS9icmlnYWRpZXInO1xuaW1wb3J0IHsgQ29tbWFuZEFyZ3VtZW50TW9iIH0gZnJvbSAnLi4vQ29tbWFuZEFyZ3VtZW50cyc7XG5cbmltcG9ydCB0eXBlIFBsYXllciBmcm9tICcuLi8uLi9QbGF5ZXInO1xuaW1wb3J0IHR5cGUgeyBFbnRpdHkgfSBmcm9tICcuLi8uLi9lbnRpdHkvRW50aXR5JztcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICcuLi9Db21tYW5kJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3VtbW9uQ29tbWFuZCBleHRlbmRzIENvbW1hbmQge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgaWQ6ICdtaW5lY3JhZnQ6c3VtbW9uJyxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnU3VtbW9uIGFuIGVudGl0eS4nLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogJ21pbmVjcmFmdC5jb21tYW5kLnN1bW1vbidcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHJlZ2lzdGVyKGRpc3BhdGNoZXI6IENvbW1hbmREaXNwYXRjaGVyPGFueT4pIHtcbiAgICAgICAgZGlzcGF0Y2hlci5yZWdpc3RlcihcbiAgICAgICAgICAgIGxpdGVyYWwoJ3N1bW1vbicpLnRoZW4oXG4gICAgICAgICAgICAgICAgYXJndW1lbnQoJ2VudGl0eScsIG5ldyBDb21tYW5kQXJndW1lbnRNb2IoKSkgLyogLnRoZW4oXG4gICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50KCdwb3NpdGlvbicsIG5ldyBDb21tYW5kQXJndW1lbnRQb3NpdGlvbigpKSAqL1xuICAgICAgICAgICAgICAgICAgICAuZXhlY3V0ZXMoYXN5bmMgKGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZSA9IGNvbnRleHQuZ2V0U291cmNlKCkgYXMgUGxheWVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc3QgcG9zaXRpb24gPSBjb250ZXh0LmdldEFyZ3VtZW50KCdwb3NpdGlvbicpIGFzIFZlY3RvcjM7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbnRpdHlJZCA9IChjb250ZXh0LmdldEFyZ3VtZW50KCdlbnRpdHknKSBhcyBzdHJpbmcpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgRW50aXR5OiBhbnkgfCB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZW50aXR5SWQuaW5jbHVkZXMoJzonKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVudGl0eSA9IE9iamVjdC5lbnRyaWVzKEVudGl0aWVzKS5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoWywgdmFsdWVdKSA9PiB2YWx1ZS5NT0JfSUQgPT09IGBtaW5lY3JhZnQ6JHtlbnRpdHlJZH1gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKT8uWzFdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbnRpdHkgPSBPYmplY3QuZW50cmllcyhFbnRpdGllcykuZmluZCgoWywgdmFsdWVdKSA9PiB2YWx1ZS5NT0JfSUQgPT09IGVudGl0eUlkKT8uWzFdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIUVudGl0eSkgdGhyb3cgbmV3IEVycm9yKGBObyBzdWNoIGVudGl0eSBcIiR7ZW50aXR5SWR9XCIhYCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vYjogRW50aXR5ID0gbmV3IEVudGl0eShzb3VyY2UuZ2V0V29ybGQoKSwgc291cmNlLmdldFNlcnZlcigpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHNvdXJjZS5nZXRXb3JsZCgpLmFkZEVudGl0eShtb2IpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBtb2Iuc2V0UG9zaXRpb24oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzb3VyY2UuZ2V0UG9zaXRpb24oKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGBTdW1tb25lZCAke0VudGl0eS5NT0JfSUR9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHNvdXJjZS5zZW5kTWVzc2FnZShyZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAvLyApXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbIkNvbW1hbmQiLCJsaXRlcmFsIiwiYXJndW1lbnQiLCJDb21tYW5kQXJndW1lbnRNb2IiLCJFbnRpdGllcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBVUEsTUFBcUIsc0JBQXNCQSx1QkFBUSxDQUFBO0FBQUEsRUFDeEMsV0FBYyxHQUFBO0FBQ2pCLElBQU0sS0FBQSxDQUFBO0FBQUEsTUFDRixFQUFJLEVBQUEsa0JBQUE7QUFBQSxNQUNKLFdBQWEsRUFBQSxtQkFBQTtBQUFBLE1BQ2IsVUFBWSxFQUFBO0FBQUEsS0FDZixDQUFBO0FBQUE7QUFDTCxFQUVBLE1BQWEsU0FBUyxVQUFvQyxFQUFBO0FBQ3RELElBQVcsVUFBQSxDQUFBLFFBQUE7QUFBQSxNQUNQQyxpQkFBQSxDQUFRLFFBQVEsQ0FBRSxDQUFBLElBQUE7QUFBQSxRQUNkQyxrQkFBQSxDQUFTLFVBQVUsSUFBSUMsMkNBQUEsRUFBb0IsQ0FFdEMsQ0FBQSxRQUFBLENBQVMsT0FBTyxPQUFZLEtBQUE7QUFDekIsVUFBTSxNQUFBLE1BQUEsR0FBUyxRQUFRLFNBQVUsRUFBQTtBQUVqQyxVQUFBLE1BQU0sUUFBWSxHQUFBLE9BQUEsQ0FBUSxXQUFZLENBQUEsUUFBUSxFQUFhLFdBQVksRUFBQTtBQUN2RSxVQUFJLElBQUEsTUFBQTtBQUVKLFVBQUEsSUFBSSxDQUFDLFFBQUEsQ0FBUyxRQUFTLENBQUEsR0FBRyxDQUFHLEVBQUE7QUFDekIsWUFBUyxNQUFBLEdBQUEsTUFBQSxDQUFPLE9BQVEsQ0FBQUMsZUFBUSxDQUFFLENBQUEsSUFBQTtBQUFBLGNBQzlCLENBQUMsR0FBRyxLQUFLLE1BQU0sS0FBTSxDQUFBLE1BQUEsS0FBVyxhQUFhLFFBQVEsQ0FBQTtBQUFBLGdCQUNyRCxDQUFDLENBQUE7QUFBQSxXQUNGLE1BQUE7QUFDSCxZQUFBLE1BQUEsR0FBUyxNQUFPLENBQUEsT0FBQSxDQUFRQSxlQUFRLENBQUEsQ0FBRSxLQUFLLENBQUMsR0FBRyxLQUFLLENBQU0sS0FBQSxLQUFBLENBQU0sTUFBVyxLQUFBLFFBQVEsSUFBSSxDQUFDLENBQUE7QUFBQTtBQUd4RixVQUFBLElBQUksQ0FBQyxNQUFRLEVBQUEsTUFBTSxJQUFJLEtBQU0sQ0FBQSxDQUFBLGdCQUFBLEVBQW1CLFFBQVEsQ0FBSSxFQUFBLENBQUEsQ0FBQTtBQUU1RCxVQUFNLE1BQUEsR0FBQSxHQUFjLElBQUksTUFBTyxDQUFBLE1BQUEsQ0FBTyxVQUFZLEVBQUEsTUFBQSxDQUFPLFdBQVcsQ0FBQTtBQUNwRSxVQUFBLE1BQU0sTUFBTyxDQUFBLFFBQUEsRUFBVyxDQUFBLFNBQUEsQ0FBVSxHQUFHLENBQUE7QUFFckMsVUFBQSxNQUFNLElBQUksV0FBWSxDQUFBO0FBQUEsWUFDbEIsUUFBQSxFQUFVLE9BQU8sV0FBWTtBQUFBLFdBQ2hDLENBQUE7QUFFRCxVQUFNLE1BQUEsR0FBQSxHQUFNLENBQVksU0FBQSxFQUFBLE1BQUEsQ0FBTyxNQUFNLENBQUEsQ0FBQTtBQUNyQyxVQUFNLE1BQUEsTUFBQSxDQUFPLFlBQVksR0FBRyxDQUFBO0FBQzVCLFVBQU8sT0FBQSxHQUFBO0FBQUEsU0FDVjtBQUFBO0FBQUE7QUFFVCxLQUNKO0FBQUE7QUFFUjs7OzsifQ==