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