위키 / Core Features / Discord 모더레이션 / 멤버의 메시지 일괄 삭제

멤버의 메시지 일괄 삭제

업데이트한 사람 Maxime_48 · 5시간 전 · 조회수: 0

멤버가 서버에 남긴 메시지를 모두 삭제해요. 이미 나갔거나 차단된 멤버여도 괜찮아요.

명령어는 하나예요: /purge-user (스태프용, 영구 삭제).


🧹 멤버의 메시지 삭제하기: /purge-user

/purge-user는 채널과 스레드를 차례로 훑으면서 한 계정이 쓴 메시지를 삭제해요. 스팸이 몰려온 뒤, 레이드 계정, 또는 어디서든 지우고 싶은 글을 올린 멤버에게 사용하세요.

  1. /purge-user를 입력하세요.
  2. user에 멘션이나 멤버의 Discord 사용자 ID(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: 마지막에 기록돼요. 삭제된 메시지 수와 채널 수가 같은 상세 정보와 함께 남아요.

두 기록 모두 메시지 본문은 담지 않고 숫자만 담아요.


🔑 사용할 수 있는 사람

다음이 모두 참이어야 해요.

  • 서버에서 모더레이션 기능이 켜져 있다
  • 그 사람이 Discord의 Manage Messages 권한을 가지고 있다. 이 권한이 있어야 명령어가 보여요.
  • 모더레이션 설정에서 *허용된 모더레이터 역할 (슬래시 명령어)*을 지정했다면, 그 역할 중 하나도 가지고 있다
  • 일괄 삭제하려는 모든 채널에서 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 → YAWBDB)에서 누가 볼 수 있는지 바꿀 수도 있어요.

🚨 보고서가 나온 뒤에도 일부 메시지가 남아 있어요

보고서를 확인하세요. **Not purged (your permissions)**나 Skipped (bot permissions) 아래의 채널은 그대로 남아 있고, Manage Threads가 없는 비공개 스레드도 건너뛰어요. 권한을 고친 뒤 channel을 지정해서 명령어를 다시 실행하세요. 다시 실행해도 안전해요. 이미 사라진 메시지는 그냥 찾지 못할 뿐이에요.

🚨 엉뚱한 멤버의 메시지를 지웠어요

되돌릴 수 없어요. 메시지는 영구적으로 사라졌어요.