UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

59 lines (53 loc) 9.09 kB
'use strict'; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } }); const brigadier = require('@jsprismarine/brigadier'); const command_Command = require('../Command.cjs.cjs'); const command_CommandArguments = require('../CommandArguments.cjs.cjs'); class BanCommand extends command_Command.Command { constructor() { super({ id: "minecraft:ban", description: "Ban a player.", permission: "minecraft.command.ban" }); } async register(dispatcher) { dispatcher.register( brigadier.literal("ban").then( brigadier.argument("player", new command_CommandArguments.PlayerArgumentCommand({ name: "player" })).then( brigadier.argument("reason", brigadier.greedyString()).executes(async (context) => { const source = context.getSource(); const reason = context.getArgument("reason"); const target = context.getArgument("player"); const player = source.getServer().getSessionManager().getAllPlayers().find((p) => p.getName() === target); if (player) { try { await player.kick(`You have been banned from the server due to: ${reason}!`); } catch (error) { source.getServer().getLogger().error(error); } } await source.getServer().getBanManager().setBanned(target, reason); return `Banned ${player ? player.getFormattedUsername() : target} due to: ${reason}!`; }) ).executes(async (context) => { const source = context.getSource(); const target = context.getArgument("player"); const player = source.getServer().getSessionManager().getAllPlayers().find((p) => p.getName() === target); if (player) { try { await player.kick(`You have been banned!`); } catch (error) { source.getServer().getLogger().error(error); } } await source.getServer().getBanManager().setBanned(target); return `Banned ${player ? player.getFormattedUsername() : target}`; }) ) ); } } exports.default = BanCommand; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFuQ29tbWFuZC5janMuY2pzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZC92YW5pbGxhL0JhbkNvbW1hbmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb21tYW5kRGlzcGF0Y2hlciB9IGZyb20gJ0Bqc3ByaXNtYXJpbmUvYnJpZ2FkaWVyJztcbmltcG9ydCB7IGFyZ3VtZW50LCBncmVlZHlTdHJpbmcsIGxpdGVyYWwgfSBmcm9tICdAanNwcmlzbWFyaW5lL2JyaWdhZGllcic7XG5cbmltcG9ydCB0eXBlIFBsYXllciBmcm9tICcuLi8uLi9QbGF5ZXInO1xuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gJy4uL0NvbW1hbmQnO1xuaW1wb3J0IHsgUGxheWVyQXJndW1lbnRDb21tYW5kIH0gZnJvbSAnLi4vQ29tbWFuZEFyZ3VtZW50cyc7XG5cbi8qKlxuICogQmFuIGEgcGxheWVyLlxuICogQHJlbWFya3MgdGhlIGAvYmFuYCBjb21tYW5kLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCYW5Db21tYW5kIGV4dGVuZHMgQ29tbWFuZCB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBpZDogJ21pbmVjcmFmdDpiYW4nLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICdCYW4gYSBwbGF5ZXIuJyxcbiAgICAgICAgICAgIHBlcm1pc3Npb246ICdtaW5lY3JhZnQuY29tbWFuZC5iYW4nXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyByZWdpc3RlcihkaXNwYXRjaGVyOiBDb21tYW5kRGlzcGF0Y2hlcjxhbnk+KSB7XG4gICAgICAgIGRpc3BhdGNoZXIucmVnaXN0ZXIoXG4gICAgICAgICAgICBsaXRlcmFsKCdiYW4nKS50aGVuKFxuICAgICAgICAgICAgICAgIGFyZ3VtZW50KCdwbGF5ZXInLCBuZXcgUGxheWVyQXJndW1lbnRDb21tYW5kKHsgbmFtZTogJ3BsYXllcicgfSkpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKFxuICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnQoJ3JlYXNvbicsIGdyZWVkeVN0cmluZygpKS5leGVjdXRlcyhhc3luYyAoY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZSA9IGNvbnRleHQuZ2V0U291cmNlKCkgYXMgUGxheWVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlYXNvbiA9IGNvbnRleHQuZ2V0QXJndW1lbnQoJ3JlYXNvbicpIGFzIHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBjb250ZXh0LmdldEFyZ3VtZW50KCdwbGF5ZXInKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwbGF5ZXIgPSBzb3VyY2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldFNlcnZlcigpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRTZXNzaW9uTWFuYWdlcigpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRBbGxQbGF5ZXJzKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmQoKHApID0+IHAuZ2V0TmFtZSgpID09PSB0YXJnZXQpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBsYXllcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgcGxheWVyLmtpY2soYFlvdSBoYXZlIGJlZW4gYmFubmVkIGZyb20gdGhlIHNlcnZlciBkdWUgdG86IFxcblxcbiR7cmVhc29ufSFgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLmdldFNlcnZlcigpLmdldExvZ2dlcigpLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHNvdXJjZS5nZXRTZXJ2ZXIoKS5nZXRCYW5NYW5hZ2VyKCkuc2V0QmFubmVkKHRhcmdldCwgcmVhc29uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYEJhbm5lZCAke3BsYXllciA/IHBsYXllci5nZXRGb3JtYXR0ZWRVc2VybmFtZSgpIDogdGFyZ2V0fSBkdWUgdG86ICR7cmVhc29ufSFgO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAuZXhlY3V0ZXMoYXN5bmMgKGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZSA9IGNvbnRleHQuZ2V0U291cmNlKCkgYXMgUGxheWVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gY29udGV4dC5nZXRBcmd1bWVudCgncGxheWVyJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwbGF5ZXIgPSBzb3VyY2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0U2VydmVyKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0U2Vzc2lvbk1hbmFnZXIoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRBbGxQbGF5ZXJzKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmluZCgocCkgPT4gcC5nZXROYW1lKCkgPT09IHRhcmdldCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwbGF5ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBwbGF5ZXIua2ljayhgWW91IGhhdmUgYmVlbiBiYW5uZWQhYCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UuZ2V0U2VydmVyKCkuZ2V0TG9nZ2VyKCkuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgc291cmNlLmdldFNlcnZlcigpLmdldEJhbk1hbmFnZXIoKS5zZXRCYW5uZWQodGFyZ2V0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgQmFubmVkICR7cGxheWVyID8gcGxheWVyLmdldEZvcm1hdHRlZFVzZXJuYW1lKCkgOiB0YXJnZXR9YDtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXSwibmFtZXMiOlsiQ29tbWFuZCIsImxpdGVyYWwiLCJhcmd1bWVudCIsIlBsYXllckFyZ3VtZW50Q29tbWFuZCIsImdyZWVkeVN0cmluZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFXQSxNQUFxQixtQkFBbUJBLHVCQUFRLENBQUE7QUFBQSxFQUNyQyxXQUFjLEdBQUE7QUFDakIsSUFBTSxLQUFBLENBQUE7QUFBQSxNQUNGLEVBQUksRUFBQSxlQUFBO0FBQUEsTUFDSixXQUFhLEVBQUEsZUFBQTtBQUFBLE1BQ2IsVUFBWSxFQUFBO0FBQUEsS0FDZixDQUFBO0FBQUE7QUFDTCxFQUVBLE1BQWEsU0FBUyxVQUFvQyxFQUFBO0FBQ3RELElBQVcsVUFBQSxDQUFBLFFBQUE7QUFBQSxNQUNQQyxpQkFBQSxDQUFRLEtBQUssQ0FBRSxDQUFBLElBQUE7QUFBQSxRQUNYQyxrQkFBQSxDQUFTLFVBQVUsSUFBSUMsOENBQUEsQ0FBc0IsRUFBRSxJQUFNLEVBQUEsUUFBQSxFQUFVLENBQUMsQ0FDM0QsQ0FBQSxJQUFBO0FBQUEsVUFDR0QsbUJBQVMsUUFBVSxFQUFBRSxzQkFBQSxFQUFjLENBQUUsQ0FBQSxRQUFBLENBQVMsT0FBTyxPQUFZLEtBQUE7QUFDM0QsWUFBTSxNQUFBLE1BQUEsR0FBUyxRQUFRLFNBQVUsRUFBQTtBQUNqQyxZQUFNLE1BQUEsTUFBQSxHQUFTLE9BQVEsQ0FBQSxXQUFBLENBQVksUUFBUSxDQUFBO0FBQzNDLFlBQU0sTUFBQSxNQUFBLEdBQVMsT0FBUSxDQUFBLFdBQUEsQ0FBWSxRQUFRLENBQUE7QUFDM0MsWUFBQSxNQUFNLE1BQVMsR0FBQSxNQUFBLENBQ1YsU0FBVSxFQUFBLENBQ1YsbUJBQ0EsQ0FBQSxhQUFBLEVBQ0EsQ0FBQSxJQUFBLENBQUssQ0FBQyxDQUFBLEtBQU0sQ0FBRSxDQUFBLE9BQUEsT0FBYyxNQUFNLENBQUE7QUFFdkMsWUFBQSxJQUFJLE1BQVEsRUFBQTtBQUNSLGNBQUksSUFBQTtBQUNBLGdCQUFBLE1BQU0sT0FBTyxJQUFLLENBQUEsQ0FBQTs7QUFBQSxFQUFvRCxNQUFNLENBQUcsQ0FBQSxDQUFBLENBQUE7QUFBQSx1QkFDMUUsS0FBWSxFQUFBO0FBQ2pCLGdCQUFBLE1BQUEsQ0FBTyxTQUFVLEVBQUEsQ0FBRSxTQUFVLEVBQUEsQ0FBRSxNQUFNLEtBQUssQ0FBQTtBQUFBO0FBQzlDO0FBR0osWUFBQSxNQUFNLE9BQU8sU0FBVSxFQUFBLENBQUUsZUFBZ0IsQ0FBQSxTQUFBLENBQVUsUUFBUSxNQUFNLENBQUE7QUFDakUsWUFBQSxPQUFPLFVBQVUsTUFBUyxHQUFBLE1BQUEsQ0FBTyxzQkFBeUIsR0FBQSxNQUFNLFlBQVksTUFBTSxDQUFBLENBQUEsQ0FBQTtBQUFBLFdBQ3JGO0FBQUEsU0FDTCxDQUNDLFFBQVMsQ0FBQSxPQUFPLE9BQVksS0FBQTtBQUN6QixVQUFNLE1BQUEsTUFBQSxHQUFTLFFBQVEsU0FBVSxFQUFBO0FBQ2pDLFVBQU0sTUFBQSxNQUFBLEdBQVMsT0FBUSxDQUFBLFdBQUEsQ0FBWSxRQUFRLENBQUE7QUFDM0MsVUFBQSxNQUFNLE1BQVMsR0FBQSxNQUFBLENBQ1YsU0FBVSxFQUFBLENBQ1YsbUJBQ0EsQ0FBQSxhQUFBLEVBQ0EsQ0FBQSxJQUFBLENBQUssQ0FBQyxDQUFBLEtBQU0sQ0FBRSxDQUFBLE9BQUEsT0FBYyxNQUFNLENBQUE7QUFFdkMsVUFBQSxJQUFJLE1BQVEsRUFBQTtBQUNSLFlBQUksSUFBQTtBQUNBLGNBQU0sTUFBQSxNQUFBLENBQU8sS0FBSyxDQUF1QixxQkFBQSxDQUFBLENBQUE7QUFBQSxxQkFDcEMsS0FBWSxFQUFBO0FBQ2pCLGNBQUEsTUFBQSxDQUFPLFNBQVUsRUFBQSxDQUFFLFNBQVUsRUFBQSxDQUFFLE1BQU0sS0FBSyxDQUFBO0FBQUE7QUFDOUM7QUFHSixVQUFBLE1BQU0sT0FBTyxTQUFVLEVBQUEsQ0FBRSxhQUFjLEVBQUEsQ0FBRSxVQUFVLE1BQU0sQ0FBQTtBQUN6RCxVQUFBLE9BQU8sQ0FBVSxPQUFBLEVBQUEsTUFBQSxHQUFTLE1BQU8sQ0FBQSxvQkFBQSxLQUF5QixNQUFNLENBQUEsQ0FBQTtBQUFBLFNBQ25FO0FBQUE7QUFDVCxLQUNKO0FBQUE7QUFFUjs7OzsifQ==