import { api } from '@rocket.chat/core-services'; import type { SlashCommandCallbackParams } from '@rocket.chat/core-typings'; import { Users } from '@rocket.chat/models'; import { banUserFromRoomMethod } from '../../lib/banUserFromRoom'; import { i18n } from '../../lib/i18n'; import { slashCommands } from '../../lib/utils/slashCommand'; import { sanitizeUsername } from '../../meteor-methods/rooms/addUsersToRoom'; import { settings } from '../../settings'; slashCommands.add({ command: 'ban', callback: async ({ params, message, userId }: SlashCommandCallbackParams<'ban'>): Promise => { const username = sanitizeUsername(params.trim()); if (!username) { return; } const user = await Users.findOneByUsernameIgnoringCase(username); if (!user) { void api.broadcast('notify.ephemeralMessage', userId, message.rid, { msg: i18n.t('Username_doesnt_exist', { interpolation: { escapeValue: false }, username, lng: settings.get('Language') || 'en', }), }); return; } await banUserFromRoomMethod(userId, { rid: message.rid, username }); }, options: { description: 'Ban_user_from_room', params: '@username', permission: 'ban-user', }, });