@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
53 lines (52 loc) • 8.13 kB
JavaScript
;
Object.defineProperties(exports, {
__esModule: { value: true },
[Symbol.toStringTag]: { value: "Module" }
});
require("../../_virtual/_rolldown/runtime.cjs.cjs");
const require_command_Command = require("../Command.cjs.cjs");
const require_command_CommandArguments = require("../CommandArguments.cjs.cjs");
let _jsprismarine_brigadier = require("@jsprismarine/brigadier");
//#region src/command/vanilla/BanCommand.ts
/**
* Ban a player.
* @remarks the `/ban` command.
*/
var BanCommand = class extends require_command_Command.Command {
constructor() {
super({
id: "minecraft:ban",
description: "Ban a player.",
permission: "minecraft.command.ban"
});
}
async register(dispatcher) {
dispatcher.register((0, _jsprismarine_brigadier.literal)("ban").then((0, _jsprismarine_brigadier.argument)("player", new require_command_CommandArguments.PlayerArgumentCommand({ name: "player" })).then((0, _jsprismarine_brigadier.argument)("reason", (0, _jsprismarine_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: \n\n${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}`;
})));
}
};
//#endregion
exports.default = BanCommand;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFuQ29tbWFuZC5janMuY2pzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kL3ZhbmlsbGEvQmFuQ29tbWFuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbW1hbmREaXNwYXRjaGVyIH0gZnJvbSAnQGpzcHJpc21hcmluZS9icmlnYWRpZXInO1xuaW1wb3J0IHsgYXJndW1lbnQsIGdyZWVkeVN0cmluZywgbGl0ZXJhbCB9IGZyb20gJ0Bqc3ByaXNtYXJpbmUvYnJpZ2FkaWVyJztcblxuaW1wb3J0IHR5cGUgUGxheWVyIGZyb20gJy4uLy4uL1BsYXllcic7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnLi4vQ29tbWFuZCc7XG5pbXBvcnQgeyBQbGF5ZXJBcmd1bWVudENvbW1hbmQgfSBmcm9tICcuLi9Db21tYW5kQXJndW1lbnRzJztcblxuLyoqXG4gKiBCYW4gYSBwbGF5ZXIuXG4gKiBAcmVtYXJrcyB0aGUgYC9iYW5gIGNvbW1hbmQuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJhbkNvbW1hbmQgZXh0ZW5kcyBDb21tYW5kIHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGlkOiAnbWluZWNyYWZ0OmJhbicsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0JhbiBhIHBsYXllci4nLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogJ21pbmVjcmFmdC5jb21tYW5kLmJhbidcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHJlZ2lzdGVyKGRpc3BhdGNoZXI6IENvbW1hbmREaXNwYXRjaGVyPGFueT4pIHtcbiAgICAgICAgZGlzcGF0Y2hlci5yZWdpc3RlcihcbiAgICAgICAgICAgIGxpdGVyYWwoJ2JhbicpLnRoZW4oXG4gICAgICAgICAgICAgICAgYXJndW1lbnQoJ3BsYXllcicsIG5ldyBQbGF5ZXJBcmd1bWVudENvbW1hbmQoeyBuYW1lOiAncGxheWVyJyB9KSlcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmd1bWVudCgncmVhc29uJywgZ3JlZWR5U3RyaW5nKCkpLmV4ZWN1dGVzKGFzeW5jIChjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc291cmNlID0gY29udGV4dC5nZXRTb3VyY2UoKSBhcyBQbGF5ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVhc29uID0gY29udGV4dC5nZXRBcmd1bWVudCgncmVhc29uJykgYXMgc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGNvbnRleHQuZ2V0QXJndW1lbnQoJ3BsYXllcicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBsYXllciA9IHNvdXJjZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0U2VydmVyKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldFNlc3Npb25NYW5hZ2VyKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldEFsbFBsYXllcnMoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmluZCgocCkgPT4gcC5nZXROYW1lKCkgPT09IHRhcmdldCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGxheWVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBwbGF5ZXIua2ljayhgWW91IGhhdmUgYmVlbiBiYW5uZWQgZnJvbSB0aGUgc2VydmVyIGR1ZSB0bzogXFxuXFxuJHtyZWFzb259IWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UuZ2V0U2VydmVyKCkuZ2V0TG9nZ2VyKCkuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgc291cmNlLmdldFNlcnZlcigpLmdldEJhbk1hbmFnZXIoKS5zZXRCYW5uZWQodGFyZ2V0LCByZWFzb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgQmFubmVkICR7cGxheWVyID8gcGxheWVyLmdldEZvcm1hdHRlZFVzZXJuYW1lKCkgOiB0YXJnZXR9IGR1ZSB0bzogJHtyZWFzb259IWA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC5leGVjdXRlcyhhc3luYyAoY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc291cmNlID0gY29udGV4dC5nZXRTb3VyY2UoKSBhcyBQbGF5ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBjb250ZXh0LmdldEFyZ3VtZW50KCdwbGF5ZXInKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBsYXllciA9IHNvdXJjZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRTZXJ2ZXIoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRTZXNzaW9uTWFuYWdlcigpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldEFsbFBsYXllcnMoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKChwKSA9PiBwLmdldE5hbWUoKSA9PT0gdGFyZ2V0KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBsYXllcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHBsYXllci5raWNrKGBZb3UgaGF2ZSBiZWVuIGJhbm5lZCFgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5nZXRTZXJ2ZXIoKS5nZXRMb2dnZXIoKS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBzb3VyY2UuZ2V0U2VydmVyKCkuZ2V0QmFuTWFuYWdlcigpLnNldEJhbm5lZCh0YXJnZXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGBCYW5uZWQgJHtwbGF5ZXIgPyBwbGF5ZXIuZ2V0Rm9ybWF0dGVkVXNlcm5hbWUoKSA6IHRhcmdldH1gO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFXQSxJQUFxQixhQUFyQixjQUF3Qyx3QkFBQSxRQUFRO0NBQzVDLGNBQXFCO0VBQ2pCLE1BQU07R0FDRixJQUFJO0dBQ0osYUFBYTtHQUNiLFlBQVk7RUFDaEIsQ0FBQztDQUNMO0NBRUEsTUFBYSxTQUFTLFlBQW9DO0VBQ3RELFdBQVcsVUFBQSxHQUFBLHdCQUFBLFNBQ0MsS0FBSyxFQUFFLE1BQUEsR0FBQSx3QkFBQSxVQUNGLFVBQVUsSUFBSSxpQ0FBQSxzQkFBc0IsRUFBRSxNQUFNLFNBQVMsQ0FBQyxDQUFDLEVBQzNELE1BQUEsR0FBQSx3QkFBQSxVQUNZLFdBQUEsR0FBQSx3QkFBQSxjQUF1QixDQUFDLEVBQUUsU0FBUyxPQUFPLFlBQVk7R0FDM0QsTUFBTSxTQUFTLFFBQVEsVUFBVTtHQUNqQyxNQUFNLFNBQVMsUUFBUSxZQUFZLFFBQVE7R0FDM0MsTUFBTSxTQUFTLFFBQVEsWUFBWSxRQUFRO0dBQzNDLE1BQU0sU0FBUyxPQUNWLFVBQVUsRUFDVixrQkFBa0IsRUFDbEIsY0FBYyxFQUNkLE1BQU0sTUFBTSxFQUFFLFFBQVEsTUFBTSxNQUFNO0dBRXZDLElBQUksUUFDQSxJQUFJO0lBQ0EsTUFBTSxPQUFPLEtBQUssb0RBQW9ELE9BQU8sRUFBRTtHQUNuRixTQUFTLE9BQVk7SUFDakIsT0FBTyxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sS0FBSztHQUM5QztHQUdKLE1BQU0sT0FBTyxVQUFVLEVBQUUsY0FBYyxFQUFFLFVBQVUsUUFBUSxNQUFNO0dBQ2pFLE9BQU8sVUFBVSxTQUFTLE9BQU8scUJBQXFCLElBQUksT0FBTyxXQUFXLE9BQU87RUFDdkYsQ0FBQyxDQUNMLEVBQ0MsU0FBUyxPQUFPLFlBQVk7R0FDekIsTUFBTSxTQUFTLFFBQVEsVUFBVTtHQUNqQyxNQUFNLFNBQVMsUUFBUSxZQUFZLFFBQVE7R0FDM0MsTUFBTSxTQUFTLE9BQ1YsVUFBVSxFQUNWLGtCQUFrQixFQUNsQixjQUFjLEVBQ2QsTUFBTSxNQUFNLEVBQUUsUUFBUSxNQUFNLE1BQU07R0FFdkMsSUFBSSxRQUNBLElBQUk7SUFDQSxNQUFNLE9BQU8sS0FBSyx1QkFBdUI7R0FDN0MsU0FBUyxPQUFZO0lBQ2pCLE9BQU8sVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLEtBQUs7R0FDOUM7R0FHSixNQUFNLE9BQU8sVUFBVSxFQUFFLGNBQWMsRUFBRSxVQUFVLE1BQU07R0FDekQsT0FBTyxVQUFVLFNBQVMsT0FBTyxxQkFBcUIsSUFBSTtFQUM5RCxDQUFDLENBQ1QsQ0FDSjtDQUNKO0FBQ0oifQ==