UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

41 lines (38 loc) 5.64 kB
import { literal, argument } from '@jsprismarine/brigadier'; import { Chat } from '../../chat/Chat.es.js'; import ChatEvent from '../../events/chat/ChatEvent.es.js'; import { Command } from '../Command.es.js'; import { PlayerArgumentCommand } from '../CommandArguments.es.js'; class DeopCommand 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`; }) ) ); } } export { DeopCommand as default }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVvcENvbW1hbmQuZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kL3ZhbmlsbGEvRGVvcENvbW1hbmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb21tYW5kRGlzcGF0Y2hlciB9IGZyb20gJ0Bqc3ByaXNtYXJpbmUvYnJpZ2FkaWVyJztcbmltcG9ydCB7IGFyZ3VtZW50LCBsaXRlcmFsIH0gZnJvbSAnQGpzcHJpc21hcmluZS9icmlnYWRpZXInO1xuaW1wb3J0IHsgQ2hhdCB9IGZyb20gJy4uLy4uL2NoYXQvQ2hhdCc7XG5pbXBvcnQgQ2hhdEV2ZW50IGZyb20gJy4uLy4uL2V2ZW50cy9jaGF0L0NoYXRFdmVudCc7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnLi4vQ29tbWFuZCc7XG5pbXBvcnQgdHlwZSBQbGF5ZXIgZnJvbSAnLi4vLi4vUGxheWVyJztcbmltcG9ydCB7IFBsYXllckFyZ3VtZW50Q29tbWFuZCB9IGZyb20gJy4uL0NvbW1hbmRBcmd1bWVudHMnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEZW9wQ29tbWFuZCBleHRlbmRzIENvbW1hbmQge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgaWQ6ICdtaW5lY3JhZnQ6ZGVvcCcsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogYFJlbW92ZSBhIHBsYXllcidzIG9wIHN0YXR1cy5gLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogJ21pbmVjcmFmdC5jb21tYW5kLmRlb3AnXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyByZWdpc3RlcihkaXNwYXRjaGVyOiBDb21tYW5kRGlzcGF0Y2hlcjxhbnk+KSB7XG4gICAgICAgIGRpc3BhdGNoZXIucmVnaXN0ZXIoXG4gICAgICAgICAgICBsaXRlcmFsKCdkZW9wJykudGhlbihcbiAgICAgICAgICAgICAgICBhcmd1bWVudCgncGxheWVyJywgbmV3IFBsYXllckFyZ3VtZW50Q29tbWFuZCh7IG5hbWU6ICdwbGF5ZXInIH0pKS5leGVjdXRlcyhhc3luYyAoY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzb3VyY2UgPSBjb250ZXh0LmdldFNvdXJjZSgpIGFzIFBsYXllcjtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gc291cmNlXG4gICAgICAgICAgICAgICAgICAgICAgICAuZ2V0U2VydmVyKClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRTZXNzaW9uTWFuYWdlcigpXG4gICAgICAgICAgICAgICAgICAgICAgICAuZ2V0UGxheWVyQnlFeGFjdE5hbWUoY29udGV4dC5nZXRBcmd1bWVudCgncGxheWVyJykpOyAvLyBUT0RPOiBieSBuYW1lIG5vdCBleGFjdFxuXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHNvdXJjZS5nZXRTZXJ2ZXIoKS5nZXRQZXJtaXNzaW9uTWFuYWdlcigpLnNldE9wKGNvbnRleHQuZ2V0QXJndW1lbnQoJ3BsYXllcicpLCBmYWxzZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgQ2hhdEV2ZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBDaGF0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VuZGVyOiBzb3VyY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICfCp2VZb3UgYXJlIG5vIGxvbmdlciBvcCEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVsOiBgKi5wbGF5ZXIuJHt0YXJnZXQuZ2V0TmFtZSgpfWBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRhcmdldC5nZXRTZXJ2ZXIoKS5lbWl0KCdjaGF0JywgZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGBNYWRlICR7Y29udGV4dC5nZXRBcmd1bWVudCgncGxheWVyJyl9IG5vIGxvbmdlciBhIHNlcnZlciBvcGVyYXRvcmA7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBUUEsTUFBcUIsb0JBQW9CLE9BQVEsQ0FBQTtBQUFBLEVBQ3RDLFdBQWMsR0FBQTtBQUNqQixJQUFNLEtBQUEsQ0FBQTtBQUFBLE1BQ0YsRUFBSSxFQUFBLGdCQUFBO0FBQUEsTUFDSixXQUFhLEVBQUEsQ0FBQSw0QkFBQSxDQUFBO0FBQUEsTUFDYixVQUFZLEVBQUE7QUFBQSxLQUNmLENBQUE7QUFBQTtBQUNMLEVBRUEsTUFBYSxTQUFTLFVBQW9DLEVBQUE7QUFDdEQsSUFBVyxVQUFBLENBQUEsUUFBQTtBQUFBLE1BQ1AsT0FBQSxDQUFRLE1BQU0sQ0FBRSxDQUFBLElBQUE7QUFBQSxRQUNaLFFBQVMsQ0FBQSxRQUFBLEVBQVUsSUFBSSxxQkFBQSxDQUFzQixFQUFFLElBQUEsRUFBTSxRQUFTLEVBQUMsQ0FBQyxDQUFBLENBQUUsUUFBUyxDQUFBLE9BQU8sT0FBWSxLQUFBO0FBQzFGLFVBQU0sTUFBQSxNQUFBLEdBQVMsUUFBUSxTQUFVLEVBQUE7QUFDakMsVUFBTSxNQUFBLE1BQUEsR0FBUyxNQUNWLENBQUEsU0FBQSxFQUNBLENBQUEsaUJBQUEsR0FDQSxvQkFBcUIsQ0FBQSxPQUFBLENBQVEsV0FBWSxDQUFBLFFBQVEsQ0FBQyxDQUFBO0FBRXZELFVBQU0sTUFBQSxNQUFBLENBQU8sU0FBVSxFQUFBLENBQUUsb0JBQXFCLEVBQUEsQ0FBRSxNQUFNLE9BQVEsQ0FBQSxXQUFBLENBQVksUUFBUSxDQUFBLEVBQUcsS0FBSyxDQUFBO0FBRTFGLFVBQUEsSUFBSSxNQUFRLEVBQUE7QUFDUixZQUFBLE1BQU0sUUFBUSxJQUFJLFNBQUE7QUFBQSxjQUNkLElBQUksSUFBSyxDQUFBO0FBQUEsZ0JBQ0wsTUFBUSxFQUFBLE1BQUE7QUFBQSxnQkFDUixPQUFTLEVBQUEseUJBQUE7QUFBQSxnQkFDVCxPQUFTLEVBQUEsQ0FBQSxTQUFBLEVBQVksTUFBTyxDQUFBLE9BQUEsRUFBUyxDQUFBO0FBQUEsZUFDeEM7QUFBQSxhQUNMO0FBQ0EsWUFBQSxNQUFNLE1BQU8sQ0FBQSxTQUFBLEVBQVksQ0FBQSxJQUFBLENBQUssUUFBUSxLQUFLLENBQUE7QUFBQTtBQUcvQyxVQUFBLE9BQU8sQ0FBUSxLQUFBLEVBQUEsT0FBQSxDQUFRLFdBQVksQ0FBQSxRQUFRLENBQUMsQ0FBQSw0QkFBQSxDQUFBO0FBQUEsU0FDL0M7QUFBQTtBQUNMLEtBQ0o7QUFBQTtBQUVSOzs7OyJ9