@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
40 lines (39 loc) • 6.22 kB
JavaScript
;
Object.defineProperties(exports, {
__esModule: { value: true },
[Symbol.toStringTag]: { value: "Module" }
});
require("../../_virtual/_rolldown/runtime.cjs.cjs");
const require_entity_Entities = require("../../entity/Entities.cjs.cjs");
const require_command_Command = require("../Command.cjs.cjs");
const require_command_CommandArguments = require("../CommandArguments.cjs.cjs");
let _jsprismarine_brigadier = require("@jsprismarine/brigadier");
//#region src/command/vanilla/SummonCommand.ts
var SummonCommand = class extends require_command_Command.Command {
constructor() {
super({
id: "minecraft:summon",
description: "Summon an entity.",
permission: "minecraft.command.summon"
});
}
async register(dispatcher) {
dispatcher.register((0, _jsprismarine_brigadier.literal)("summon").then((0, _jsprismarine_brigadier.argument)("entity", new require_command_CommandArguments.CommandArgumentMob()).executes(async (context) => {
const source = context.getSource();
const entityId = context.getArgument("entity").toLowerCase();
let Entity;
if (!entityId.includes(":")) Entity = Object.entries(require_entity_Entities.Entities_exports).find(([, value]) => value.MOB_ID === `minecraft:${entityId}`)?.[1];
else Entity = Object.entries(require_entity_Entities.Entities_exports).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;
})));
}
};
//#endregion
exports.default = SummonCommand;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3VtbW9uQ29tbWFuZC5janMuY2pzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kL3ZhbmlsbGEvU3VtbW9uQ29tbWFuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBFbnRpdGllcyBmcm9tICcuLi8uLi9lbnRpdHkvRW50aXRpZXMnO1xuXG5pbXBvcnQgdHlwZSB7IENvbW1hbmREaXNwYXRjaGVyIH0gZnJvbSAnQGpzcHJpc21hcmluZS9icmlnYWRpZXInO1xuaW1wb3J0IHsgYXJndW1lbnQsIGxpdGVyYWwgfSBmcm9tICdAanNwcmlzbWFyaW5lL2JyaWdhZGllcic7XG5pbXBvcnQgeyBDb21tYW5kQXJndW1lbnRNb2IgfSBmcm9tICcuLi9Db21tYW5kQXJndW1lbnRzJztcblxuaW1wb3J0IHR5cGUgUGxheWVyIGZyb20gJy4uLy4uL1BsYXllcic7XG5pbXBvcnQgdHlwZSB7IEVudGl0eSB9IGZyb20gJy4uLy4uL2VudGl0eS9FbnRpdHknO1xuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gJy4uL0NvbW1hbmQnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTdW1tb25Db21tYW5kIGV4dGVuZHMgQ29tbWFuZCB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBpZDogJ21pbmVjcmFmdDpzdW1tb24nLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICdTdW1tb24gYW4gZW50aXR5LicsXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiAnbWluZWNyYWZ0LmNvbW1hbmQuc3VtbW9uJ1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgcmVnaXN0ZXIoZGlzcGF0Y2hlcjogQ29tbWFuZERpc3BhdGNoZXI8YW55Pikge1xuICAgICAgICBkaXNwYXRjaGVyLnJlZ2lzdGVyKFxuICAgICAgICAgICAgbGl0ZXJhbCgnc3VtbW9uJykudGhlbihcbiAgICAgICAgICAgICAgICBhcmd1bWVudCgnZW50aXR5JywgbmV3IENvbW1hbmRBcmd1bWVudE1vYigpKSAvKiAudGhlbihcbiAgICAgICAgICAgICAgICAgICAgYXJndW1lbnQoJ3Bvc2l0aW9uJywgbmV3IENvbW1hbmRBcmd1bWVudFBvc2l0aW9uKCkpICovXG4gICAgICAgICAgICAgICAgICAgIC5leGVjdXRlcyhhc3luYyAoY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc291cmNlID0gY29udGV4dC5nZXRTb3VyY2UoKSBhcyBQbGF5ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zdCBwb3NpdGlvbiA9IGNvbnRleHQuZ2V0QXJndW1lbnQoJ3Bvc2l0aW9uJykgYXMgVmVjdG9yMztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVudGl0eUlkID0gKGNvbnRleHQuZ2V0QXJndW1lbnQoJ2VudGl0eScpIGFzIHN0cmluZykudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBFbnRpdHk6IGFueSB8IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFlbnRpdHlJZC5pbmNsdWRlcygnOicpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW50aXR5ID0gT2JqZWN0LmVudHJpZXMoRW50aXRpZXMpLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbLCB2YWx1ZV0pID0+IHZhbHVlLk1PQl9JRCA9PT0gYG1pbmVjcmFmdDoke2VudGl0eUlkfWBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApPy5bMV07XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVudGl0eSA9IE9iamVjdC5lbnRyaWVzKEVudGl0aWVzKS5maW5kKChbLCB2YWx1ZV0pID0+IHZhbHVlLk1PQl9JRCA9PT0gZW50aXR5SWQpPy5bMV07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghRW50aXR5KSB0aHJvdyBuZXcgRXJyb3IoYE5vIHN1Y2ggZW50aXR5IFwiJHtlbnRpdHlJZH1cIiFgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9iOiBFbnRpdHkgPSBuZXcgRW50aXR5KHNvdXJjZS5nZXRXb3JsZCgpLCBzb3VyY2UuZ2V0U2VydmVyKCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgc291cmNlLmdldFdvcmxkKCkuYWRkRW50aXR5KG1vYik7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IG1vYi5zZXRQb3NpdGlvbih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHNvdXJjZS5nZXRQb3NpdGlvbigpXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzID0gYFN1bW1vbmVkICR7RW50aXR5Lk1PQl9JRH1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgc291cmNlLnNlbmRNZXNzYWdlKHJlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC8vIClcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBVUEsSUFBcUIsZ0JBQXJCLGNBQTJDLHdCQUFBLFFBQVE7Q0FDL0MsY0FBcUI7RUFDakIsTUFBTTtHQUNGLElBQUk7R0FDSixhQUFhO0dBQ2IsWUFBWTtFQUNoQixDQUFDO0NBQ0w7Q0FFQSxNQUFhLFNBQVMsWUFBb0M7RUFDdEQsV0FBVyxVQUFBLEdBQUEsd0JBQUEsU0FDQyxRQUFRLEVBQUUsTUFBQSxHQUFBLHdCQUFBLFVBQ0wsVUFBVSxJQUFJLGlDQUFBLG1CQUFtQixDQUFDLEVBRXRDLFNBQVMsT0FBTyxZQUFZO0dBQ3pCLE1BQU0sU0FBUyxRQUFRLFVBQVU7R0FFakMsTUFBTSxXQUFZLFFBQVEsWUFBWSxRQUFRLEVBQWEsWUFBWTtHQUN2RSxJQUFJO0dBRUosSUFBSSxDQUFDLFNBQVMsU0FBUyxHQUFHLEdBQ3RCLFNBQVMsT0FBTyxRQUFRLHdCQUFBLGdCQUFRLEVBQUUsTUFDN0IsR0FBRyxXQUFXLE1BQU0sV0FBVyxhQUFhLFVBQ2pELElBQUk7UUFFSixTQUFTLE9BQU8sUUFBUSx3QkFBQSxnQkFBUSxFQUFFLE1BQU0sR0FBRyxXQUFXLE1BQU0sV0FBVyxRQUFRLElBQUk7R0FHdkYsSUFBSSxDQUFDLFFBQVEsTUFBTSxJQUFJLE1BQU0sbUJBQW1CLFNBQVMsR0FBRztHQUU1RCxNQUFNLE1BQWMsSUFBSSxPQUFPLE9BQU8sU0FBUyxHQUFHLE9BQU8sVUFBVSxDQUFDO0dBQ3BFLE1BQU0sT0FBTyxTQUFTLEVBQUUsVUFBVSxHQUFHO0dBRXJDLE1BQU0sSUFBSSxZQUFZLEVBQ2xCLFVBQVUsT0FBTyxZQUFZLEVBQ2pDLENBQUM7R0FFRCxNQUFNLE1BQU0sWUFBWSxPQUFPO0dBQy9CLE1BQU0sT0FBTyxZQUFZLEdBQUc7R0FDNUIsT0FBTztFQUNYLENBQUMsQ0FFVCxDQUNKO0NBQ0o7QUFDSiJ9