@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
59 lines (53 loc) • 9.09 kB
JavaScript
;
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==