UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

43 lines (39 loc) 6.25 kB
import { literal, argument, greedyString } from '@jsprismarine/brigadier'; import { Command } from '../Command.es.js'; import { PlayerArgumentCommand } from '../CommandArguments.es.js'; class KickCommand extends Command { constructor() { super({ id: "minecraft:kick", description: "Kicks a player off the server.", permission: "minecraft.command.kick" }); } async register(dispatcher) { dispatcher.register( literal("kick").then( argument("player", new PlayerArgumentCommand({ name: "player" })).then( argument("reason", greedyString()).executes(async (context) => { const targets = context.getArgument("player"); const reason = context.getArgument("reason"); await Promise.all( targets.map( async (target) => await target.kick(`You have been kicked from the server due to: ${reason}!`) ) ); return `Kicked ${targets.map((target) => target.getFormattedUsername()).join(", ")} due to: ${reason}!`; }) ).executes(async (context) => { const targets = context.getArgument("player"); await Promise.all( targets.map(async (target) => await target.kick(`You have been kicked from the server!`)) ); return `Kicked ${targets.map((target) => target.getFormattedUsername()).join(", ")}`; }) ) ); } } export { KickCommand as default }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2lja0NvbW1hbmQuZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kL3ZhbmlsbGEvS2lja0NvbW1hbmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb21tYW5kRGlzcGF0Y2hlciB9IGZyb20gJ0Bqc3ByaXNtYXJpbmUvYnJpZ2FkaWVyJztcbmltcG9ydCB7IGFyZ3VtZW50LCBncmVlZHlTdHJpbmcsIGxpdGVyYWwgfSBmcm9tICdAanNwcmlzbWFyaW5lL2JyaWdhZGllcic7XG5cbmltcG9ydCB0eXBlIFBsYXllciBmcm9tICcuLi8uLi9QbGF5ZXInO1xuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gJy4uL0NvbW1hbmQnO1xuaW1wb3J0IHsgUGxheWVyQXJndW1lbnRDb21tYW5kIH0gZnJvbSAnLi4vQ29tbWFuZEFyZ3VtZW50cyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEtpY2tDb21tYW5kIGV4dGVuZHMgQ29tbWFuZCB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBpZDogJ21pbmVjcmFmdDpraWNrJyxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnS2lja3MgYSBwbGF5ZXIgb2ZmIHRoZSBzZXJ2ZXIuJyxcbiAgICAgICAgICAgIHBlcm1pc3Npb246ICdtaW5lY3JhZnQuY29tbWFuZC5raWNrJ1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgcmVnaXN0ZXIoZGlzcGF0Y2hlcjogQ29tbWFuZERpc3BhdGNoZXI8YW55Pikge1xuICAgICAgICBkaXNwYXRjaGVyLnJlZ2lzdGVyKFxuICAgICAgICAgICAgbGl0ZXJhbCgna2ljaycpLnRoZW4oXG4gICAgICAgICAgICAgICAgYXJndW1lbnQoJ3BsYXllcicsIG5ldyBQbGF5ZXJBcmd1bWVudENvbW1hbmQoeyBuYW1lOiAncGxheWVyJyB9KSlcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmd1bWVudCgncmVhc29uJywgZ3JlZWR5U3RyaW5nKCkpLmV4ZWN1dGVzKGFzeW5jIChjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0cyA9IGNvbnRleHQuZ2V0QXJndW1lbnQoJ3BsYXllcicpIGFzIFBsYXllcltdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlYXNvbiA9IGNvbnRleHQuZ2V0QXJndW1lbnQoJ3JlYXNvbicpIGFzIHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRzLm1hcChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzeW5jICh0YXJnZXQpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGFyZ2V0LmtpY2soYFlvdSBoYXZlIGJlZW4ga2lja2VkIGZyb20gdGhlIHNlcnZlciBkdWUgdG86IFxcblxcbiR7cmVhc29ufSFgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYEtpY2tlZCAke3RhcmdldHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCgodGFyZ2V0KSA9PiB0YXJnZXQuZ2V0Rm9ybWF0dGVkVXNlcm5hbWUoKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oJywgJyl9IGR1ZSB0bzogJHtyZWFzb259IWA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC5leGVjdXRlcyhhc3luYyAoY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0cyA9IGNvbnRleHQuZ2V0QXJndW1lbnQoJ3BsYXllcicpIGFzIFBsYXllcltdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRzLm1hcChhc3luYyAodGFyZ2V0KSA9PiBhd2FpdCB0YXJnZXQua2ljayhgWW91IGhhdmUgYmVlbiBraWNrZWQgZnJvbSB0aGUgc2VydmVyIWApKVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgS2lja2VkICR7dGFyZ2V0cy5tYXAoKHRhcmdldCkgPT4gdGFyZ2V0LmdldEZvcm1hdHRlZFVzZXJuYW1lKCkpLmpvaW4oJywgJyl9YDtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQU9BLE1BQXFCLG9CQUFvQixPQUFRLENBQUE7QUFBQSxFQUN0QyxXQUFjLEdBQUE7QUFDakIsSUFBTSxLQUFBLENBQUE7QUFBQSxNQUNGLEVBQUksRUFBQSxnQkFBQTtBQUFBLE1BQ0osV0FBYSxFQUFBLGdDQUFBO0FBQUEsTUFDYixVQUFZLEVBQUE7QUFBQSxLQUNmLENBQUE7QUFBQTtBQUNMLEVBRUEsTUFBYSxTQUFTLFVBQW9DLEVBQUE7QUFDdEQsSUFBVyxVQUFBLENBQUEsUUFBQTtBQUFBLE1BQ1AsT0FBQSxDQUFRLE1BQU0sQ0FBRSxDQUFBLElBQUE7QUFBQSxRQUNaLFFBQUEsQ0FBUyxVQUFVLElBQUkscUJBQUEsQ0FBc0IsRUFBRSxJQUFNLEVBQUEsUUFBQSxFQUFVLENBQUMsQ0FDM0QsQ0FBQSxJQUFBO0FBQUEsVUFDRyxTQUFTLFFBQVUsRUFBQSxZQUFBLEVBQWMsQ0FBRSxDQUFBLFFBQUEsQ0FBUyxPQUFPLE9BQVksS0FBQTtBQUMzRCxZQUFNLE1BQUEsT0FBQSxHQUFVLE9BQVEsQ0FBQSxXQUFBLENBQVksUUFBUSxDQUFBO0FBQzVDLFlBQU0sTUFBQSxNQUFBLEdBQVMsT0FBUSxDQUFBLFdBQUEsQ0FBWSxRQUFRLENBQUE7QUFFM0MsWUFBQSxNQUFNLE9BQVEsQ0FBQSxHQUFBO0FBQUEsY0FDVixPQUFRLENBQUEsR0FBQTtBQUFBLGdCQUNKLE9BQU8sTUFBQSxLQUNILE1BQU0sTUFBQSxDQUFPLElBQUssQ0FBQSxDQUFBOztBQUFBLEVBQW9ELE1BQU0sQ0FBRyxDQUFBLENBQUE7QUFBQTtBQUN2RixhQUNKO0FBQ0EsWUFBQSxPQUFPLENBQVUsT0FBQSxFQUFBLE9BQUEsQ0FDWixHQUFJLENBQUEsQ0FBQyxNQUFXLEtBQUEsTUFBQSxDQUFPLG9CQUFxQixFQUFDLENBQzdDLENBQUEsSUFBQSxDQUFLLElBQUksQ0FBQyxZQUFZLE1BQU0sQ0FBQSxDQUFBLENBQUE7QUFBQSxXQUNwQztBQUFBLFNBQ0wsQ0FDQyxRQUFTLENBQUEsT0FBTyxPQUFZLEtBQUE7QUFDekIsVUFBTSxNQUFBLE9BQUEsR0FBVSxPQUFRLENBQUEsV0FBQSxDQUFZLFFBQVEsQ0FBQTtBQUU1QyxVQUFBLE1BQU0sT0FBUSxDQUFBLEdBQUE7QUFBQSxZQUNWLE9BQUEsQ0FBUSxJQUFJLE9BQU8sTUFBQSxLQUFXLE1BQU0sTUFBTyxDQUFBLElBQUEsQ0FBSyx1Q0FBdUMsQ0FBQztBQUFBLFdBQzVGO0FBQ0EsVUFBTyxPQUFBLENBQUEsT0FBQSxFQUFVLE9BQVEsQ0FBQSxHQUFBLENBQUksQ0FBQyxNQUFBLEtBQVcsTUFBTyxDQUFBLG9CQUFBLEVBQXNCLENBQUEsQ0FBRSxJQUFLLENBQUEsSUFBSSxDQUFDLENBQUEsQ0FBQTtBQUFBLFNBQ3JGO0FBQUE7QUFDVCxLQUNKO0FBQUE7QUFFUjs7OzsifQ==