@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
35 lines (34 loc) • 4.94 kB
JavaScript
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