UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

35 lines (34 loc) 4.94 kB
import ChatEvent from "../../events/chat/ChatEvent.es.js"; import { Command } from "../Command.es.js"; import { PlayerArgumentCommand } from "../CommandArguments.es.js"; import { Chat } from "../../chat/Chat.es.js"; import { argument, literal } from "@jsprismarine/brigadier"; //#region src/command/vanilla/DeopCommand.ts var DeopCommand = class extends Command { constructor() { super({ id: "minecraft:deop", description: `Remove a player's op status.`, permission: "minecraft.command.deop" }); } async register(dispatcher) { dispatcher.register(literal("deop").then(argument("player", new PlayerArgumentCommand({ name: "player" })).executes(async (context) => { const source = context.getSource(); const target = source.getServer().getSessionManager().getPlayerByExactName(context.getArgument("player")); await source.getServer().getPermissionManager().setOp(context.getArgument("player"), false); if (target) { const event = new ChatEvent(new Chat({ sender: source, message: "§eYou are no longer op!", channel: `*.player.${target.getName()}` })); await target.getServer().emit("chat", event); } return `Made ${context.getArgument("player")} no longer a server operator`; }))); } }; //#endregion export { DeopCommand as default }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVvcENvbW1hbmQuZXMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmQvdmFuaWxsYS9EZW9wQ29tbWFuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbW1hbmREaXNwYXRjaGVyIH0gZnJvbSAnQGpzcHJpc21hcmluZS9icmlnYWRpZXInO1xuaW1wb3J0IHsgYXJndW1lbnQsIGxpdGVyYWwgfSBmcm9tICdAanNwcmlzbWFyaW5lL2JyaWdhZGllcic7XG5pbXBvcnQgeyBDaGF0IH0gZnJvbSAnLi4vLi4vY2hhdC9DaGF0JztcbmltcG9ydCBDaGF0RXZlbnQgZnJvbSAnLi4vLi4vZXZlbnRzL2NoYXQvQ2hhdEV2ZW50JztcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICcuLi9Db21tYW5kJztcbmltcG9ydCB0eXBlIFBsYXllciBmcm9tICcuLi8uLi9QbGF5ZXInO1xuaW1wb3J0IHsgUGxheWVyQXJndW1lbnRDb21tYW5kIH0gZnJvbSAnLi4vQ29tbWFuZEFyZ3VtZW50cyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERlb3BDb21tYW5kIGV4dGVuZHMgQ29tbWFuZCB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBpZDogJ21pbmVjcmFmdDpkZW9wJyxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgUmVtb3ZlIGEgcGxheWVyJ3Mgb3Agc3RhdHVzLmAsXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiAnbWluZWNyYWZ0LmNvbW1hbmQuZGVvcCdcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHJlZ2lzdGVyKGRpc3BhdGNoZXI6IENvbW1hbmREaXNwYXRjaGVyPGFueT4pIHtcbiAgICAgICAgZGlzcGF0Y2hlci5yZWdpc3RlcihcbiAgICAgICAgICAgIGxpdGVyYWwoJ2Rlb3AnKS50aGVuKFxuICAgICAgICAgICAgICAgIGFyZ3VtZW50KCdwbGF5ZXInLCBuZXcgUGxheWVyQXJndW1lbnRDb21tYW5kKHsgbmFtZTogJ3BsYXllcicgfSkpLmV4ZWN1dGVzKGFzeW5jIChjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZSA9IGNvbnRleHQuZ2V0U291cmNlKCkgYXMgUGxheWVyO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBzb3VyY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRTZXJ2ZXIoKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmdldFNlc3Npb25NYW5hZ2VyKClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRQbGF5ZXJCeUV4YWN0TmFtZShjb250ZXh0LmdldEFyZ3VtZW50KCdwbGF5ZXInKSk7IC8vIFRPRE86IGJ5IG5hbWUgbm90IGV4YWN0XG5cbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgc291cmNlLmdldFNlcnZlcigpLmdldFBlcm1pc3Npb25NYW5hZ2VyKCkuc2V0T3AoY29udGV4dC5nZXRBcmd1bWVudCgncGxheWVyJyksIGZhbHNlKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBldmVudCA9IG5ldyBDaGF0RXZlbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IENoYXQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW5kZXI6IHNvdXJjZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ8KnZVlvdSBhcmUgbm8gbG9uZ2VyIG9wIScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWw6IGAqLnBsYXllci4ke3RhcmdldC5nZXROYW1lKCl9YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGFyZ2V0LmdldFNlcnZlcigpLmVtaXQoJ2NoYXQnLCBldmVudCk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYE1hZGUgJHtjb250ZXh0LmdldEFyZ3VtZW50KCdwbGF5ZXInKX0gbm8gbG9uZ2VyIGEgc2VydmVyIG9wZXJhdG9yYDtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBUUEsSUFBcUIsY0FBckIsY0FBeUMsUUFBUTtDQUM3QyxjQUFxQjtFQUNqQixNQUFNO0dBQ0YsSUFBSTtHQUNKLGFBQWE7R0FDYixZQUFZO0VBQ2hCLENBQUM7Q0FDTDtDQUVBLE1BQWEsU0FBUyxZQUFvQztFQUN0RCxXQUFXLFNBQ1AsUUFBUSxNQUFNLEVBQUUsS0FDWixTQUFTLFVBQVUsSUFBSSxzQkFBc0IsRUFBRSxNQUFNLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxPQUFPLFlBQVk7R0FDMUYsTUFBTSxTQUFTLFFBQVEsVUFBVTtHQUNqQyxNQUFNLFNBQVMsT0FDVixVQUFVLEVBQ1Ysa0JBQWtCLEVBQ2xCLHFCQUFxQixRQUFRLFlBQVksUUFBUSxDQUFDO0dBRXZELE1BQU0sT0FBTyxVQUFVLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxRQUFRLFlBQVksUUFBUSxHQUFHLEtBQUs7R0FFMUYsSUFBSSxRQUFRO0lBQ1IsTUFBTSxRQUFRLElBQUksVUFDZCxJQUFJLEtBQUs7S0FDTCxRQUFRO0tBQ1IsU0FBUztLQUNULFNBQVMsWUFBWSxPQUFPLFFBQVE7SUFDeEMsQ0FBQyxDQUNMO0lBQ0EsTUFBTSxPQUFPLFVBQVUsRUFBRSxLQUFLLFFBQVEsS0FBSztHQUMvQztHQUVBLE9BQU8sUUFBUSxRQUFRLFlBQVksUUFBUSxFQUFFO0VBQ2pELENBQUMsQ0FDTCxDQUNKO0NBQ0o7QUFDSiJ9