Удаление сообщений участника
Обновлено Maxime_48 · 5 часов назад · Просмотры: 0
Удалите все сообщения, которые участник оставил на вашем сервере, даже если он уже ушёл или был забанен.
Это делает одна команда: /purge-user (для персонала, удаляет безвозвратно).
🧹 Удалить сообщения участника: /purge-user
/purge-user проходит по вашим каналам и веткам и удаляет сообщения, написанные одним аккаунтом. Используйте её после волны спама, при аккаунте из рейда или когда участник опубликовал то, что нужно убрать отовсюду.
- Введите
/purge-user. - В поле
userукажите упоминание или ID пользователя Discord участника (от 17 до 20 цифр). Чтобы скопировать ID, включите в Discord Режим разработчика (Developer Mode; Настройки пользователя, Расширенные), нажмите на участника правой кнопкой и выберите Копировать ID пользователя (Copy User ID). Ушедшего или забаненного участника больше нельзя упомянуть, поэтому используйте его ID. - При желании сузьте область параметрами
channel,daysиreason(см. ниже) и нажмите Enter. - Бот показывает, что собирается сделать, и две кнопки: Confirm и Cancel.
- Нажмите 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 отменить уже нельзя. Кнопки исчезают, а команды остановки нет. Если бот перезапустится посреди работы, очистка остановится там, где была: удалённое останется удалённым, остальное останется на месте.
Удалённые сообщения восстановить нельзя. Бот не хранит содержимое удаляемых сообщений.
📋 Что записывается в лог
Если вы задали канал логов модерации, в нём появятся две записи:
- MESSAGE PURGE STARTED, записанная до первого удаления: участник, область, ваше имя и причина. Если очистку прервут, вы всё равно знаете, кто её запустил и в отношении кого.
- MESSAGES PURGED, записанная в конце: сколько сообщений удалено и в скольких каналах, с теми же подробностями.
Ни одна из записей не содержит текста сообщений, только числа.
🔑 Кто может это использовать
Должны выполняться все условия:
- функция «Модерация» включена на сервере
- у человека есть право Manage Messages в Discord. Именно оно делает команду видимой.
- если в настройках Модерации задано Разрешённые роли модераторов (слэш-команды), у него должна быть и одна из этих ролей
- у него есть Manage Messages в каждом канале, который он хочет очистить, как объяснено выше (и Manage Threads для приватных веток)
Боту в каждом очищаемом канале нужны: View Channel, Read Message History и Manage Messages. Для архивных веток также Manage Threads.
💡 Пример
Спам-аккаунт зашёл на сервер, разместил ссылки-приглашения в нескольких каналах и через два дня был забанен.
- Скопируйте ID аккаунта (забаненного пользователя упомянуть нельзя).
- Введите
/purge-user user:123456789012345678 days:3 reason:invite spam. - Бот просит подтверждения. Нажмите Confirm.
- В конце отчёт сообщает, сколько сообщений удалено, в скольких каналах и сколько каналов просмотрено.
- Канал в списке 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. Повторный запуск безопасен: сообщения, которых уже нет, просто не будут найдены.
🚨 Я очистил не того участника
Отменить нельзя. Сообщения удалены навсегда.