@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
46 lines (41 loc) • 5.95 kB
JavaScript
;
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
const brigadier = require('@jsprismarine/brigadier');
const errors = require('@jsprismarine/errors');
const chat_Chat = require('../../chat/Chat.cjs.cjs');
const events_chat_ChatEvent = require('../../events/chat/ChatEvent.cjs.cjs');
const command_Command = require('../Command.cjs.cjs');
const command_CommandArguments = require('../CommandArguments.cjs.cjs');
class OpCommand extends command_Command.Command {
constructor() {
super({
id: "minecraft:op",
description: "Grant player op status.",
permission: "minecraft.command.op"
});
}
async register(dispatcher) {
dispatcher.register(
brigadier.literal("op").then(
brigadier.argument("player", new command_CommandArguments.PlayerArgumentCommand({ name: "player" })).executes(async (context) => {
const source = context.getSource();
const username = context.getArgument("player");
const target = source.getServer().getSessionManager().getPlayerByExactName(username);
if (!target) throw new errors.PlayerNotFoundError(username);
await source.getServer().getPermissionManager().setOp(username, true);
const event = new events_chat_ChatEvent.default(
new chat_Chat.Chat({
sender: source,
message: "§eYou are now op!",
channel: `*.player.${target.getName()}`
})
);
await target.getServer().emit("chat", event);
return `Made ${username} a server operator`;
})
)
);
}
}
exports.default = OpCommand;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BDb21tYW5kLmNqcy5janMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kL3ZhbmlsbGEvT3BDb21tYW5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29tbWFuZERpc3BhdGNoZXIgfSBmcm9tICdAanNwcmlzbWFyaW5lL2JyaWdhZGllcic7XG5pbXBvcnQgeyBhcmd1bWVudCwgbGl0ZXJhbCB9IGZyb20gJ0Bqc3ByaXNtYXJpbmUvYnJpZ2FkaWVyJztcblxuaW1wb3J0IHsgUGxheWVyTm90Rm91bmRFcnJvciB9IGZyb20gJ0Bqc3ByaXNtYXJpbmUvZXJyb3JzJztcbmltcG9ydCB0eXBlIFBsYXllciBmcm9tICcuLi8uLi9QbGF5ZXInO1xuaW1wb3J0IHsgQ2hhdCB9IGZyb20gJy4uLy4uL2NoYXQvQ2hhdCc7XG5pbXBvcnQgQ2hhdEV2ZW50IGZyb20gJy4uLy4uL2V2ZW50cy9jaGF0L0NoYXRFdmVudCc7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnLi4vQ29tbWFuZCc7XG5pbXBvcnQgeyBQbGF5ZXJBcmd1bWVudENvbW1hbmQgfSBmcm9tICcuLi9Db21tYW5kQXJndW1lbnRzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgT3BDb21tYW5kIGV4dGVuZHMgQ29tbWFuZCB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBpZDogJ21pbmVjcmFmdDpvcCcsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0dyYW50IHBsYXllciBvcCBzdGF0dXMuJyxcbiAgICAgICAgICAgIHBlcm1pc3Npb246ICdtaW5lY3JhZnQuY29tbWFuZC5vcCdcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHJlZ2lzdGVyKGRpc3BhdGNoZXI6IENvbW1hbmREaXNwYXRjaGVyPGFueT4pIHtcbiAgICAgICAgZGlzcGF0Y2hlci5yZWdpc3RlcihcbiAgICAgICAgICAgIGxpdGVyYWwoJ29wJykudGhlbihcbiAgICAgICAgICAgICAgICBhcmd1bWVudCgncGxheWVyJywgbmV3IFBsYXllckFyZ3VtZW50Q29tbWFuZCh7IG5hbWU6ICdwbGF5ZXInIH0pKS5leGVjdXRlcyhhc3luYyAoY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzb3VyY2UgPSBjb250ZXh0LmdldFNvdXJjZSgpIGFzIFBsYXllcjtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdXNlcm5hbWUgPSBjb250ZXh0LmdldEFyZ3VtZW50KCdwbGF5ZXInKTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBzb3VyY2UuZ2V0U2VydmVyKCkuZ2V0U2Vzc2lvbk1hbmFnZXIoKS5nZXRQbGF5ZXJCeUV4YWN0TmFtZSh1c2VybmFtZSk7IC8vIFRPRE86IGJ5IG5hbWUgbm90IGV4YWN0XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGFyZ2V0KSB0aHJvdyBuZXcgUGxheWVyTm90Rm91bmRFcnJvcih1c2VybmFtZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgc291cmNlLmdldFNlcnZlcigpLmdldFBlcm1pc3Npb25NYW5hZ2VyKCkuc2V0T3AodXNlcm5hbWUsIHRydWUpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IENoYXRFdmVudChcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBDaGF0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW5kZXI6IHNvdXJjZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnwqdlWW91IGFyZSBub3cgb3AhJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVsOiBgKi5wbGF5ZXIuJHt0YXJnZXQuZ2V0TmFtZSgpfWBcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRhcmdldC5nZXRTZXJ2ZXIoKS5lbWl0KCdjaGF0JywgZXZlbnQpO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgTWFkZSAke3VzZXJuYW1lfSBhIHNlcnZlciBvcGVyYXRvcmA7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXSwibmFtZXMiOlsiQ29tbWFuZCIsImxpdGVyYWwiLCJhcmd1bWVudCIsIlBsYXllckFyZ3VtZW50Q29tbWFuZCIsIlBsYXllck5vdEZvdW5kRXJyb3IiLCJDaGF0RXZlbnQiLCJDaGF0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQVVBLE1BQXFCLGtCQUFrQkEsdUJBQVEsQ0FBQTtBQUFBLEVBQ3BDLFdBQWMsR0FBQTtBQUNqQixJQUFNLEtBQUEsQ0FBQTtBQUFBLE1BQ0YsRUFBSSxFQUFBLGNBQUE7QUFBQSxNQUNKLFdBQWEsRUFBQSx5QkFBQTtBQUFBLE1BQ2IsVUFBWSxFQUFBO0FBQUEsS0FDZixDQUFBO0FBQUE7QUFDTCxFQUVBLE1BQWEsU0FBUyxVQUFvQyxFQUFBO0FBQ3RELElBQVcsVUFBQSxDQUFBLFFBQUE7QUFBQSxNQUNQQyxpQkFBQSxDQUFRLElBQUksQ0FBRSxDQUFBLElBQUE7QUFBQSxRQUNWQyxrQkFBUyxDQUFBLFFBQUEsRUFBVSxJQUFJQyw4Q0FBQSxDQUFzQixFQUFFLElBQUEsRUFBTSxRQUFTLEVBQUMsQ0FBQyxDQUFBLENBQUUsUUFBUyxDQUFBLE9BQU8sT0FBWSxLQUFBO0FBQzFGLFVBQU0sTUFBQSxNQUFBLEdBQVMsUUFBUSxTQUFVLEVBQUE7QUFDakMsVUFBTSxNQUFBLFFBQUEsR0FBVyxPQUFRLENBQUEsV0FBQSxDQUFZLFFBQVEsQ0FBQTtBQUU3QyxVQUFBLE1BQU0sU0FBUyxNQUFPLENBQUEsU0FBQSxHQUFZLGlCQUFrQixFQUFBLENBQUUscUJBQXFCLFFBQVEsQ0FBQTtBQUNuRixVQUFBLElBQUksQ0FBQyxNQUFBLEVBQWMsTUFBQSxJQUFJQywyQkFBb0IsUUFBUSxDQUFBO0FBRW5ELFVBQUEsTUFBTSxPQUFPLFNBQVUsRUFBQSxDQUFFLHNCQUF1QixDQUFBLEtBQUEsQ0FBTSxVQUFVLElBQUksQ0FBQTtBQUVwRSxVQUFBLE1BQU0sUUFBUSxJQUFJQyw2QkFBQTtBQUFBLFlBQ2QsSUFBSUMsY0FBSyxDQUFBO0FBQUEsY0FDTCxNQUFRLEVBQUEsTUFBQTtBQUFBLGNBQ1IsT0FBUyxFQUFBLG1CQUFBO0FBQUEsY0FDVCxPQUFTLEVBQUEsQ0FBQSxTQUFBLEVBQVksTUFBTyxDQUFBLE9BQUEsRUFBUyxDQUFBO0FBQUEsYUFDeEM7QUFBQSxXQUNMO0FBQ0EsVUFBQSxNQUFNLE1BQU8sQ0FBQSxTQUFBLEVBQVksQ0FBQSxJQUFBLENBQUssUUFBUSxLQUFLLENBQUE7QUFFM0MsVUFBQSxPQUFPLFFBQVEsUUFBUSxDQUFBLGtCQUFBLENBQUE7QUFBQSxTQUMxQjtBQUFBO0FBQ0wsS0FDSjtBQUFBO0FBRVI7Ozs7In0=