Wiki / Core Features / Модерация Discord / Удаление сообщений участника

Удаление сообщений участника

Обновлено Maxime_48 · 5 часов назад · Просмотры: 0

Удалите все сообщения, которые участник оставил на вашем сервере, даже если он уже ушёл или был забанен.

Это делает одна команда: /purge-user (для персонала, удаляет безвозвратно).


🧹 Удалить сообщения участника: /purge-user

/purge-user проходит по вашим каналам и веткам и удаляет сообщения, написанные одним аккаунтом. Используйте её после волны спама, при аккаунте из рейда или когда участник опубликовал то, что нужно убрать отовсюду.

  1. Введите /purge-user.
  2. В поле user укажите упоминание или ID пользователя Discord участника (от 17 до 20 цифр). Чтобы скопировать ID, включите в Discord Режим разработчика (Developer Mode; Настройки пользователя, Расширенные), нажмите на участника правой кнопкой и выберите Копировать ID пользователя (Copy User ID). Ушедшего или забаненного участника больше нельзя упомянуть, поэтому используйте его ID.
  3. При желании сузьте область параметрами channel, days и reason (см. ниже) и нажмите Enter.
  4. Бот показывает, что собирается сделать, и две кнопки: Confirm и Cancel.
  5. Нажмите Confirm. Удаление начнётся, а сообщение будет обновляться по ходу дела.

Всё, что бот пишет при этом, приватно: видите только вы.

Параметры

Параметр Обязательный Что делает
user да Упоминание или просто ID пользователя (от 17 до 20 цифр).
channel нет Только этот канал и ветки в нём. Без него просматриваются все каналы сервера.
days нет Только сообщения за последние N дней, от 1 до 5000. Без него просматривается вся история.
reason нет До 512 символов. Записывается в ваш канал логов модерации и не отправляется участнику.

🎯 Что команда затрагивает, а что нет

Прочитайте это, прежде чем подтверждать.

Она затрагивает сообщения этого аккаунта в текстовых каналах, каналах объявлений, голосовых каналах и трибунах, а также в ветках (активных и архивных, включая посты форумов и медиаканалов), но только там, где и вы, и бот можете управлять сообщениями.

Бот проверяет ваши права канал за каналом, а не только вашу роль на всём сервере. Канал очищается, только если:

  • вы его видите и имеете в нём Manage Messages, и
  • бот его видит, может читать его историю и имеет в нём Manage Messages.

Если у одного из вас в канале не хватает права, этот канал остаётся нетронутым. Команда не прерывается: она продолжает с остальными каналами и перечисляет такие каналы в итоговом отчёте.

Два вида веток строже:

  • Приватные ветки: вам нужно также Manage Threads. Без него ветка пропускается и в отчёте не называется.
  • Архивные ветки: Manage Threads нужно и боту. Он заново открывает ветку, удаляет сообщения и снова архивирует её. Архивные приватные ветки ищутся только тогда, когда и у вас, и у бота есть Manage Threads в родительском канале.

Она не делает следующего:

  • не банит, не кикает, не мутит и не предупреждает участника и ничего не добавляет в его историю модерации. Она только удаляет сообщения. Если участник ещё на сервере, используйте /ban или /mute отдельно.
  • не заходит в канал, которым вы сами управлять не можете, даже если бот может. Это сделано намеренно: команда никогда не позволит вам удалить то, что вы не смогли бы удалить вручную.
  • не удаляет сообщения, которые участник отправит после того, как бот уже просмотрел этот канал.
  • не затрагивает другие серверы и личные сообщения.
  • не называет канал, которого вы не видите. Он не попадает в отчёт, так что отчёт не выдаст его существования.

Бот отклоняет собственный ID: очистка его сообщений стёрла бы историю вашего канала логов и сломала бы панели ролей, тикетов, верификации и розыгрышей, которые он отслеживает.


⏳ Сколько это занимает, и отчёт

У Discord нет поиска для ботов, поэтому бот читает историю каждого канала страница за страницей и выбирает сообщения участника.

  • Сообщения младше 14 дней удаляются группами до 100.
  • Сообщения старше 14 дней можно удалять только по одному. На оживлённом сервере с длинной историей это может занять много времени. Сужайте область параметрами days или channel, когда можете.
  • Сообщение о ходе работы обновляется не чаще чем раз в 5 секунд: сколько сообщений удалено на данный момент, в каком канале бот сейчас и сколько каналов осталось.
  • На одном сервере одновременно может идти только одна очистка. Вторая получит "A purge is already running on this server".

Закончив, бот отвечает числом удалённых сообщений, числом просмотренных каналов и списком по каналам. В отчёте могут быть также:

  • Not purged (your permissions): каналы, где вам не хватает права.
  • Skipped (bot permissions): каналы, где его не хватает боту.
  • Failed, the other channels went on: каналы, где очистка остановилась из-за ошибки. Уже удалённое там остаётся удалённым.
  • число сообщений, которые не удалось удалить, по каналам.

Длинный список обрезается надписью "… and N more". Если ничего не найдено, вы получите тот же отчёт с 0 удалённых сообщений.

Если очистка идёт дольше 14 минут

Discord позволяет боту редактировать свой ответ только 15 минут. Примерно через 14 минут после ввода команды бот перестаёт обновлять сообщение и вместо этого отправляет вам итоговый отчёт в личном сообщении, с названием сервера внизу. Убедитесь, что личные сообщения от участников сервера у вас открыты, иначе вы можете его не увидеть. Записи в канале логов (ниже) всё равно создаются.


⚠️ Подтверждение и отмена

  • Подтверждение называет участника, говорит, какие каналы и сколько дней охвачено, и сообщает This cannot be undone (отменить нельзя).
  • Только вы можете нажимать кнопки.
  • У вас есть 60 секунд. Потом в сообщении появится "Confirmation expired: nothing was deleted." и ничего не произойдёт.
  • Cancel останавливает всё: "Cancelled: nothing was deleted."
  • После нажатия Confirm отменить уже нельзя. Кнопки исчезают, а команды остановки нет. Если бот перезапустится посреди работы, очистка остановится там, где была: удалённое останется удалённым, остальное останется на месте.

Удалённые сообщения восстановить нельзя. Бот не хранит содержимое удаляемых сообщений.


📋 Что записывается в лог

Если вы задали канал логов модерации, в нём появятся две записи:

  1. MESSAGE PURGE STARTED, записанная до первого удаления: участник, область, ваше имя и причина. Если очистку прервут, вы всё равно знаете, кто её запустил и в отношении кого.
  2. MESSAGES PURGED, записанная в конце: сколько сообщений удалено и в скольких каналах, с теми же подробностями.

Ни одна из записей не содержит текста сообщений, только числа.


🔑 Кто может это использовать

Должны выполняться все условия:

  • функция «Модерация» включена на сервере
  • у человека есть право Manage Messages в Discord. Именно оно делает команду видимой.
  • если в настройках Модерации задано Разрешённые роли модераторов (слэш-команды), у него должна быть и одна из этих ролей
  • у него есть Manage Messages в каждом канале, который он хочет очистить, как объяснено выше (и Manage Threads для приватных веток)

Боту в каждом очищаемом канале нужны: View Channel, Read Message History и Manage Messages. Для архивных веток также Manage Threads.


💡 Пример

Спам-аккаунт зашёл на сервер, разместил ссылки-приглашения в нескольких каналах и через два дня был забанен.

  1. Скопируйте ID аккаунта (забаненного пользователя упомянуть нельзя).
  2. Введите /purge-user user:123456789012345678 days:3 reason:invite spam.
  3. Бот просит подтверждения. Нажмите Confirm.
  4. В конце отчёт сообщает, сколько сообщений удалено, в скольких каналах и сколько каналов просмотрено.
  5. Канал в списке Not purged (your permissions) это канал, где у вас нет Manage Messages, например канал только для персонала. При необходимости другой модератор может запустить команду с параметром channel, указав этот канал.

🔧 Если что-то пошло не так

🚨 «Give a user mention or a Discord user ID (17 to 20 digits)»

Поле user не содержит ни упоминания, ни ID. Скопируйте ID заново при включённом Режиме разработчика. Имя или тег не подойдут.

🚨 «The Moderation feature is not enabled for this server»

Включите функцию в панели и повторите попытку. В сообщении есть ссылка.

🚨 «This server is not registered in the YAWBDB panel»

Сервер не подключён к панели. Сначала подключите его.

🚨 «You do not have a role that is allowed to use moderation commands on this server»

Ваш сервер ограничивает команды модерации определёнными ролями. Попросите администратора добавить вашу роль в Разрешённые роли модераторов (слэш-команды) или очистить этот список.

🚨 «A purge is already running on this server»

Идёт другая очистка. Дождитесь её отчёта и запустите свою.

🚨 «I could not read your permissions on this server, so nothing was deleted»

Discord не передал боту ваши права. Ничего не удалено. Повторите попытку через минуту.

🚨 Я не вижу /purge-user в списке команд

Discord скрывает её от всех, у кого нет Manage Messages. Администратор сервера также может изменить, кто её видит, в Настройки сервера → Интеграции → YAWBDB (Server Settings → Integrations).

🚨 После отчёта некоторые сообщения остались

Посмотрите отчёт: канал в Not purged (your permissions) или Skipped (bot permissions) остался нетронутым, и приватная ветка без Manage Threads тоже пропускается. Исправьте право и запустите команду снова с параметром channel. Повторный запуск безопасен: сообщения, которых уже нет, просто не будут найдены.

🚨 Я очистил не того участника

Отменить нельзя. Сообщения удалены навсегда.