UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

64 lines (59 loc) 10.9 kB
'use strict'; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } }); const command_CommandArguments = require('../CommandArguments.cjs.cjs'); const brigadier = require('@jsprismarine/brigadier'); const command_Command = require('../Command.cjs.cjs'); class ExecuteCommand extends command_Command.Command { constructor() { super({ id: "minecraft:execute", description: "Executes a command on a player target.", permission: "minecraft.command.execute" }); } async register(dispatcher) { dispatcher.register( brigadier.literal("execute").then( brigadier.argument("player", new command_CommandArguments.CommandArgumentEntity()).then( brigadier.argument("command", new command_CommandArguments.CommandArgumentCommand()).executes(async (context) => { const source = context.getSource(); const targets = context.getArgument("player"); const command = context.getArgument("command"); await Promise.all( targets.map( async (target) => source.getServer().getCommandManager().dispatchCommand(source, target, command) ) ); }).then( brigadier.argument("arguments", brigadier.greedyString()).executes(async (context) => { const source = context.getSource(); const targets = context.getArgument("player"); const command = context.getArgument("command"); const args = context.getArgument("arguments"); await Promise.all( targets.map( async (target) => source.getServer().getCommandManager().dispatchCommand(source, target, `${command} ${args}`) ) ); }) ) ) ).then( brigadier.argument("command", new command_CommandArguments.CommandArgumentCommand()).executes(async (context) => { const source = context.getSource(); const command = context.getArgument("command"); await source.getServer().getCommandManager().dispatchCommand(source, source, command); }).then( brigadier.argument("arguments", brigadier.greedyString()).executes(async (context) => { const source = context.getSource(); const command = context.getArgument("command"); const args = context.getArgument("arguments"); await source.getServer().getCommandManager().dispatchCommand(source, source, `${command} ${args}`); }) ) ) ); } } exports.default = ExecuteCommand; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhlY3V0ZUNvbW1hbmQuY2pzLmNqcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmQvdmFuaWxsYS9FeGVjdXRlQ29tbWFuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tYW5kQXJndW1lbnRDb21tYW5kLCBDb21tYW5kQXJndW1lbnRFbnRpdHkgfSBmcm9tICcuLi9Db21tYW5kQXJndW1lbnRzJztcbmltcG9ydCB0eXBlIHsgQ29tbWFuZERpc3BhdGNoZXIgfSBmcm9tICdAanNwcmlzbWFyaW5lL2JyaWdhZGllcic7XG5pbXBvcnQgeyBhcmd1bWVudCwgZ3JlZWR5U3RyaW5nLCBsaXRlcmFsIH0gZnJvbSAnQGpzcHJpc21hcmluZS9icmlnYWRpZXInO1xuXG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnLi4vQ29tbWFuZCc7XG5pbXBvcnQgdHlwZSBQbGF5ZXIgZnJvbSAnLi4vLi4vUGxheWVyJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRXhlY3V0ZUNvbW1hbmQgZXh0ZW5kcyBDb21tYW5kIHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGlkOiAnbWluZWNyYWZ0OmV4ZWN1dGUnLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICdFeGVjdXRlcyBhIGNvbW1hbmQgb24gYSBwbGF5ZXIgdGFyZ2V0LicsXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiAnbWluZWNyYWZ0LmNvbW1hbmQuZXhlY3V0ZSdcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHJlZ2lzdGVyKGRpc3BhdGNoZXI6IENvbW1hbmREaXNwYXRjaGVyPGFueT4pIHtcbiAgICAgICAgZGlzcGF0Y2hlci5yZWdpc3RlcihcbiAgICAgICAgICAgIGxpdGVyYWwoJ2V4ZWN1dGUnKVxuICAgICAgICAgICAgICAgIC50aGVuKFxuICAgICAgICAgICAgICAgICAgICBhcmd1bWVudCgncGxheWVyJywgbmV3IENvbW1hbmRBcmd1bWVudEVudGl0eSgpKS50aGVuKFxuICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnQoJ2NvbW1hbmQnLCBuZXcgQ29tbWFuZEFyZ3VtZW50Q29tbWFuZCgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5leGVjdXRlcyhhc3luYyAoY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzb3VyY2UgPSBjb250ZXh0LmdldFNvdXJjZSgpIGFzIFBsYXllcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0cyA9IGNvbnRleHQuZ2V0QXJndW1lbnQoJ3BsYXllcicpIGFzIFBsYXllcltdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb21tYW5kID0gY29udGV4dC5nZXRBcmd1bWVudCgnY29tbWFuZCcpIGFzIHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRzLm1hcChhc3luYyAodGFyZ2V0KSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5nZXRTZXJ2ZXIoKS5nZXRDb21tYW5kTWFuYWdlcigpLmRpc3BhdGNoQ29tbWFuZChzb3VyY2UsIHRhcmdldCwgY29tbWFuZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmd1bWVudCgnYXJndW1lbnRzJywgZ3JlZWR5U3RyaW5nKCkpLmV4ZWN1dGVzKGFzeW5jIChjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzb3VyY2UgPSBjb250ZXh0LmdldFNvdXJjZSgpIGFzIFBsYXllcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldHMgPSBjb250ZXh0LmdldEFyZ3VtZW50KCdwbGF5ZXInKSBhcyBQbGF5ZXJbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbW1hbmQgPSBjb250ZXh0LmdldEFyZ3VtZW50KCdjb21tYW5kJykgYXMgc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXJncyA9IGNvbnRleHQuZ2V0QXJndW1lbnQoJ2FyZ3VtZW50cycpIGFzIHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0cy5tYXAoYXN5bmMgKHRhcmdldCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0U2VydmVyKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRDb21tYW5kTWFuYWdlcigpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZGlzcGF0Y2hDb21tYW5kKHNvdXJjZSwgdGFyZ2V0LCBgJHtjb21tYW5kfSAke2FyZ3N9YClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAudGhlbihcbiAgICAgICAgICAgICAgICAgICAgYXJndW1lbnQoJ2NvbW1hbmQnLCBuZXcgQ29tbWFuZEFyZ3VtZW50Q29tbWFuZCgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmV4ZWN1dGVzKGFzeW5jIChjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc291cmNlID0gY29udGV4dC5nZXRTb3VyY2UoKSBhcyBQbGF5ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29tbWFuZCA9IGNvbnRleHQuZ2V0QXJndW1lbnQoJ2NvbW1hbmQnKSBhcyBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgc291cmNlLmdldFNlcnZlcigpLmdldENvbW1hbmRNYW5hZ2VyKCkuZGlzcGF0Y2hDb21tYW5kKHNvdXJjZSwgc291cmNlLCBjb21tYW5kKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAudGhlbihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmd1bWVudCgnYXJndW1lbnRzJywgZ3JlZWR5U3RyaW5nKCkpLmV4ZWN1dGVzKGFzeW5jIChjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZSA9IGNvbnRleHQuZ2V0U291cmNlKCkgYXMgUGxheWVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb21tYW5kID0gY29udGV4dC5nZXRBcmd1bWVudCgnY29tbWFuZCcpIGFzIHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXJncyA9IGNvbnRleHQuZ2V0QXJndW1lbnQoJ2FyZ3VtZW50cycpIGFzIHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgc291cmNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0U2VydmVyKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRDb21tYW5kTWFuYWdlcigpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZGlzcGF0Y2hDb21tYW5kKHNvdXJjZSwgc291cmNlLCBgJHtjb21tYW5kfSAke2FyZ3N9YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbIkNvbW1hbmQiLCJsaXRlcmFsIiwiYXJndW1lbnQiLCJDb21tYW5kQXJndW1lbnRFbnRpdHkiLCJDb21tYW5kQXJndW1lbnRDb21tYW5kIiwiZ3JlZWR5U3RyaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQU9BLE1BQXFCLHVCQUF1QkEsdUJBQVEsQ0FBQTtBQUFBLEVBQ3pDLFdBQWMsR0FBQTtBQUNqQixJQUFNLEtBQUEsQ0FBQTtBQUFBLE1BQ0YsRUFBSSxFQUFBLG1CQUFBO0FBQUEsTUFDSixXQUFhLEVBQUEsd0NBQUE7QUFBQSxNQUNiLFVBQVksRUFBQTtBQUFBLEtBQ2YsQ0FBQTtBQUFBO0FBQ0wsRUFFQSxNQUFhLFNBQVMsVUFBb0MsRUFBQTtBQUN0RCxJQUFXLFVBQUEsQ0FBQSxRQUFBO0FBQUEsTUFDUEMsaUJBQUEsQ0FBUSxTQUFTLENBQ1osQ0FBQSxJQUFBO0FBQUEsUUFDR0Msa0JBQVMsQ0FBQSxRQUFBLEVBQVUsSUFBSUMsOENBQUEsRUFBdUIsQ0FBRSxDQUFBLElBQUE7QUFBQSxVQUM1Q0Qsa0JBQUEsQ0FBUyxXQUFXLElBQUlFLCtDQUFBLEVBQXdCLENB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