@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
29 lines (28 loc) • 5.41 kB
JavaScript
import { Command } from "../Command.es.js";
import { PlayerArgumentCommand } from "../CommandArguments.es.js";
import { argument, greedyString, literal } from "@jsprismarine/brigadier";
//#region src/command/vanilla/KickCommand.ts
var KickCommand = class 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: \n\n${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(", ")}`;
})));
}
};
//#endregion
export { KickCommand as default };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2lja0NvbW1hbmQuZXMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmQvdmFuaWxsYS9LaWNrQ29tbWFuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbW1hbmREaXNwYXRjaGVyIH0gZnJvbSAnQGpzcHJpc21hcmluZS9icmlnYWRpZXInO1xuaW1wb3J0IHsgYXJndW1lbnQsIGdyZWVkeVN0cmluZywgbGl0ZXJhbCB9IGZyb20gJ0Bqc3ByaXNtYXJpbmUvYnJpZ2FkaWVyJztcblxuaW1wb3J0IHR5cGUgUGxheWVyIGZyb20gJy4uLy4uL1BsYXllcic7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnLi4vQ29tbWFuZCc7XG5pbXBvcnQgeyBQbGF5ZXJBcmd1bWVudENvbW1hbmQgfSBmcm9tICcuLi9Db21tYW5kQXJndW1lbnRzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgS2lja0NvbW1hbmQgZXh0ZW5kcyBDb21tYW5kIHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGlkOiAnbWluZWNyYWZ0OmtpY2snLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICdLaWNrcyBhIHBsYXllciBvZmYgdGhlIHNlcnZlci4nLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogJ21pbmVjcmFmdC5jb21tYW5kLmtpY2snXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyByZWdpc3RlcihkaXNwYXRjaGVyOiBDb21tYW5kRGlzcGF0Y2hlcjxhbnk+KSB7XG4gICAgICAgIGRpc3BhdGNoZXIucmVnaXN0ZXIoXG4gICAgICAgICAgICBsaXRlcmFsKCdraWNrJykudGhlbihcbiAgICAgICAgICAgICAgICBhcmd1bWVudCgncGxheWVyJywgbmV3IFBsYXllckFyZ3VtZW50Q29tbWFuZCh7IG5hbWU6ICdwbGF5ZXInIH0pKVxuICAgICAgICAgICAgICAgICAgICAudGhlbihcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50KCdyZWFzb24nLCBncmVlZHlTdHJpbmcoKSkuZXhlY3V0ZXMoYXN5bmMgKGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRzID0gY29udGV4dC5nZXRBcmd1bWVudCgncGxheWVyJykgYXMgUGxheWVyW107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVhc29uID0gY29udGV4dC5nZXRBcmd1bWVudCgncmVhc29uJykgYXMgc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldHMubWFwKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXN5bmMgKHRhcmdldCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB0YXJnZXQua2ljayhgWW91IGhhdmUgYmVlbiBraWNrZWQgZnJvbSB0aGUgc2VydmVyIGR1ZSB0bzogXFxuXFxuJHtyZWFzb259IWApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgS2lja2VkICR7dGFyZ2V0c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKCh0YXJnZXQpID0+IHRhcmdldC5nZXRGb3JtYXR0ZWRVc2VybmFtZSgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuam9pbignLCAnKX0gZHVlIHRvOiAke3JlYXNvbn0hYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLmV4ZWN1dGVzKGFzeW5jIChjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRzID0gY29udGV4dC5nZXRBcmd1bWVudCgncGxheWVyJykgYXMgUGxheWVyW107XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldHMubWFwKGFzeW5jICh0YXJnZXQpID0+IGF3YWl0IHRhcmdldC5raWNrKGBZb3UgaGF2ZSBiZWVuIGtpY2tlZCBmcm9tIHRoZSBzZXJ2ZXIhYCkpXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGBLaWNrZWQgJHt0YXJnZXRzLm1hcCgodGFyZ2V0KSA9PiB0YXJnZXQuZ2V0Rm9ybWF0dGVkVXNlcm5hbWUoKSkuam9pbignLCAnKX1gO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQU9BLElBQXFCLGNBQXJCLGNBQXlDLFFBQVE7Q0FDN0MsY0FBcUI7RUFDakIsTUFBTTtHQUNGLElBQUk7R0FDSixhQUFhO0dBQ2IsWUFBWTtFQUNoQixDQUFDO0NBQ0w7Q0FFQSxNQUFhLFNBQVMsWUFBb0M7RUFDdEQsV0FBVyxTQUNQLFFBQVEsTUFBTSxFQUFFLEtBQ1osU0FBUyxVQUFVLElBQUksc0JBQXNCLEVBQUUsTUFBTSxTQUFTLENBQUMsQ0FBQyxFQUMzRCxLQUNHLFNBQVMsVUFBVSxhQUFhLENBQUMsRUFBRSxTQUFTLE9BQU8sWUFBWTtHQUMzRCxNQUFNLFVBQVUsUUFBUSxZQUFZLFFBQVE7R0FDNUMsTUFBTSxTQUFTLFFBQVEsWUFBWSxRQUFRO0dBRTNDLE1BQU0sUUFBUSxJQUNWLFFBQVEsSUFDSixPQUFPLFdBQ0gsTUFBTSxPQUFPLEtBQUssb0RBQW9ELE9BQU8sRUFBRSxDQUN2RixDQUNKO0dBQ0EsT0FBTyxVQUFVLFFBQ1osS0FBSyxXQUFXLE9BQU8scUJBQXFCLENBQUMsRUFDN0MsS0FBSyxJQUFJLEVBQUUsV0FBVyxPQUFPO0VBQ3RDLENBQUMsQ0FDTCxFQUNDLFNBQVMsT0FBTyxZQUFZO0dBQ3pCLE1BQU0sVUFBVSxRQUFRLFlBQVksUUFBUTtHQUU1QyxNQUFNLFFBQVEsSUFDVixRQUFRLElBQUksT0FBTyxXQUFXLE1BQU0sT0FBTyxLQUFLLHVDQUF1QyxDQUFDLENBQzVGO0dBQ0EsT0FBTyxVQUFVLFFBQVEsS0FBSyxXQUFXLE9BQU8scUJBQXFCLENBQUMsRUFBRSxLQUFLLElBQUk7RUFDckYsQ0FBQyxDQUNULENBQ0o7Q0FDSjtBQUNKIn0=