UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

40 lines (39 loc) 9.04 kB
import { Command } from "../Command.es.js"; import { CommandArgumentCommand, CommandArgumentEntity } from "../CommandArguments.es.js"; import { argument, greedyString, literal } from "@jsprismarine/brigadier"; //#region src/command/vanilla/ExecuteCommand.ts var ExecuteCommand = class extends Command { constructor() { super({ id: "minecraft:execute", description: "Executes a command on a player target.", permission: "minecraft.command.execute" }); } async register(dispatcher) { dispatcher.register(literal("execute").then(argument("player", new CommandArgumentEntity()).then(argument("command", new 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(argument("arguments", 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(argument("command", new CommandArgumentCommand()).executes(async (context) => { const source = context.getSource(); const command = context.getArgument("command"); await source.getServer().getCommandManager().dispatchCommand(source, source, command); }).then(argument("arguments", 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}`); })))); } }; //#endregion export { ExecuteCommand as default }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhlY3V0ZUNvbW1hbmQuZXMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmQvdmFuaWxsYS9FeGVjdXRlQ29tbWFuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tYW5kQXJndW1lbnRDb21tYW5kLCBDb21tYW5kQXJndW1lbnRFbnRpdHkgfSBmcm9tICcuLi9Db21tYW5kQXJndW1lbnRzJztcbmltcG9ydCB0eXBlIHsgQ29tbWFuZERpc3BhdGNoZXIgfSBmcm9tICdAanNwcmlzbWFyaW5lL2JyaWdhZGllcic7XG5pbXBvcnQgeyBhcmd1bWVudCwgZ3JlZWR5U3RyaW5nLCBsaXRlcmFsIH0gZnJvbSAnQGpzcHJpc21hcmluZS9icmlnYWRpZXInO1xuXG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnLi4vQ29tbWFuZCc7XG5pbXBvcnQgdHlwZSBQbGF5ZXIgZnJvbSAnLi4vLi4vUGxheWVyJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRXhlY3V0ZUNvbW1hbmQgZXh0ZW5kcyBDb21tYW5kIHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGlkOiAnbWluZWNyYWZ0OmV4ZWN1dGUnLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICdFeGVjdXRlcyBhIGNvbW1hbmQgb24gYSBwbGF5ZXIgdGFyZ2V0LicsXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiAnbWluZWNyYWZ0LmNvbW1hbmQuZXhlY3V0ZSdcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHJlZ2lzdGVyKGRpc3BhdGNoZXI6IENvbW1hbmREaXNwYXRjaGVyPGFueT4pIHtcbiAgICAgICAgZGlzcGF0Y2hlci5yZWdpc3RlcihcbiAgICAgICAgICAgIGxpdGVyYWwoJ2V4ZWN1dGUnKVxuICAgICAgICAgICAgICAgIC50aGVuKFxuICAgICAgICAgICAgICAgICAgICBhcmd1bWVudCgncGxheWVyJywgbmV3IENvbW1hbmRBcmd1bWVudEVudGl0eSgpKS50aGVuKFxuICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnQoJ2NvbW1hbmQnLCBuZXcgQ29tbWFuZEFyZ3VtZW50Q29tbWFuZCgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5leGVjdXRlcyhhc3luYyAoY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzb3VyY2UgPSBjb250ZXh0LmdldFNvdXJjZSgpIGFzIFBsYXllcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0cyA9IGNvbnRleHQuZ2V0QXJndW1lbnQoJ3BsYXllcicpIGFzIFBsYXllcltdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb21tYW5kID0gY29udGV4dC5nZXRBcmd1bWVudCgnY29tbWFuZCcpIGFzIHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRzLm1hcChhc3luYyAodGFyZ2V0KSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5nZXRTZXJ2ZXIoKS5nZXRDb21tYW5kTWFuYWdlcigpLmRpc3BhdGNoQ29tbWFuZChzb3VyY2UsIHRhcmdldCwgY29tbWFuZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmd1bWVudCgnYXJndW1lbnRzJywgZ3JlZWR5U3RyaW5nKCkpLmV4ZWN1dGVzKGFzeW5jIChjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzb3VyY2UgPSBjb250ZXh0LmdldFNvdXJjZSgpIGFzIFBsYXllcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldHMgPSBjb250ZXh0LmdldEFyZ3VtZW50KCdwbGF5ZXInKSBhcyBQbGF5ZXJbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbW1hbmQgPSBjb250ZXh0LmdldEFyZ3VtZW50KCdjb21tYW5kJykgYXMgc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXJncyA9IGNvbnRleHQuZ2V0QXJndW1lbnQoJ2FyZ3VtZW50cycpIGFzIHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0cy5tYXAoYXN5bmMgKHRhcmdldCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0U2VydmVyKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRDb21tYW5kTWFuYWdlcigpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZGlzcGF0Y2hDb21tYW5kKHNvdXJjZSwgdGFyZ2V0LCBgJHtjb21tYW5kfSAke2FyZ3N9YClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAudGhlbihcbiAgICAgICAgICAgICAgICAgICAgYXJndW1lbnQoJ2NvbW1hbmQnLCBuZXcgQ29tbWFuZEFyZ3VtZW50Q29tbWFuZCgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmV4ZWN1dGVzKGFzeW5jIChjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc291cmNlID0gY29udGV4dC5nZXRTb3VyY2UoKSBhcyBQbGF5ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29tbWFuZCA9IGNvbnRleHQuZ2V0QXJndW1lbnQoJ2NvbW1hbmQnKSBhcyBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgc291cmNlLmdldFNlcnZlcigpLmdldENvbW1hbmRNYW5hZ2VyKCkuZGlzcGF0Y2hDb21tYW5kKHNvdXJjZSwgc291cmNlLCBjb21tYW5kKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAudGhlbihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmd1bWVudCgnYXJndW1lbnRzJywgZ3JlZWR5U3RyaW5nKCkpLmV4ZWN1dGVzKGFzeW5jIChjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZSA9IGNvbnRleHQuZ2V0U291cmNlKCkgYXMgUGxheWVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb21tYW5kID0gY29udGV4dC5nZXRBcmd1bWVudCgnY29tbWFuZCcpIGFzIHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXJncyA9IGNvbnRleHQuZ2V0QXJndW1lbnQoJ2FyZ3VtZW50cycpIGFzIHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgc291cmNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0U2VydmVyKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRDb21tYW5kTWFuYWdlcigpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZGlzcGF0Y2hDb21tYW5kKHNvdXJjZSwgc291cmNlLCBgJHtjb21tYW5kfSAke2FyZ3N9YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBT0EsSUFBcUIsaUJBQXJCLGNBQTRDLFFBQVE7Q0FDaEQsY0FBcUI7RUFDakIsTUFBTTtHQUNGLElBQUk7R0FDSixhQUFhO0dBQ2IsWUFBWTtFQUNoQixDQUFDO0NBQ0w7Q0FFQSxNQUFhLFNBQVMsWUFBb0M7RUFDdEQsV0FBVyxTQUNQLFFBQVEsU0FBUyxFQUNaLEtBQ0csU0FBUyxVQUFVLElBQUksc0JBQXNCLENBQUMsRUFBRSxLQUM1QyxTQUFTLFdBQVcsSUFBSSx1QkFBdUIsQ0FBQyxFQUMzQyxTQUFTLE9BQU8sWUFBWTtHQUN6QixNQUFNLFNBQVMsUUFBUSxVQUFVO0dBQ2pDLE1BQU0sVUFBVSxRQUFRLFlBQVksUUFBUTtHQUM1QyxNQUFNLFVBQVUsUUFBUSxZQUFZLFNBQVM7R0FDN0MsTUFBTSxRQUFRLElBQ1YsUUFBUSxJQUFJLE9BQU8sV0FDZixPQUFPLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsUUFBUSxRQUFRLE9BQU8sQ0FDbEYsQ0FDSjtFQUNKLENBQUMsRUFDQSxLQUNHLFNBQVMsYUFBYSxhQUFhLENBQUMsRUFBRSxTQUFTLE9BQU8sWUFBWTtHQUM5RCxNQUFNLFNBQVMsUUFBUSxVQUFVO0dBQ2pDLE1BQU0sVUFBVSxRQUFRLFlBQVksUUFBUTtHQUM1QyxNQUFNLFVBQVUsUUFBUSxZQUFZLFNBQVM7R0FDN0MsTUFBTSxPQUFPLFFBQVEsWUFBWSxXQUFXO0dBRTVDLE1BQU0sUUFBUSxJQUNWLFFBQVEsSUFBSSxPQUFPLFdBQ2YsT0FDSyxVQUFVLEVBQ1Ysa0JBQWtCLEVBQ2xCLGdCQUFnQixRQUFRLFFBQVEsR0FBRyxRQUFRLEdBQUcsTUFBTSxDQUM3RCxDQUNKO0VBQ0osQ0FBQyxDQUNMLENBQ1IsQ0FDSixFQUNDLEtBQ0csU0FBUyxXQUFXLElBQUksdUJBQXVCLENBQUMsRUFDM0MsU0FBUyxPQUFPLFlBQVk7R0FDekIsTUFBTSxTQUFTLFFBQVEsVUFBVTtHQUNqQyxNQUFNLFVBQVUsUUFBUSxZQUFZLFNBQVM7R0FDN0MsTUFBTSxPQUFPLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsUUFBUSxRQUFRLE9BQU87RUFDeEYsQ0FBQyxFQUNBLEtBQ0csU0FBUyxhQUFhLGFBQWEsQ0FBQyxFQUFFLFNBQVMsT0FBTyxZQUFZO0dBQzlELE1BQU0sU0FBUyxRQUFRLFVBQVU7R0FDakMsTUFBTSxVQUFVLFFBQVEsWUFBWSxTQUFTO0dBQzdDLE1BQU0sT0FBTyxRQUFRLFlBQVksV0FBVztHQUM1QyxNQUFNLE9BQ0QsVUFBVSxFQUNWLGtCQUFrQixFQUNsQixnQkFBZ0IsUUFBUSxRQUFRLEdBQUcsUUFBUSxHQUFHLE1BQU07RUFDN0QsQ0FBQyxDQUNMLENBQ1IsQ0FDUjtDQUNKO0FBQ0oifQ==