Wiki / Core Features / Discordモデレーション / メンバーのメッセージを一括削除する

メンバーのメッセージを一括削除する

更新者 Maxime_48 · 5時間前 · 閲覧数:0

メンバーがサーバーに残したメッセージをすべて削除します。すでに退出したメンバーや、BANされたメンバーでも使えます。

使うコマンドは1つです。/purge-user(スタッフ用、完全に削除します)。


🧹 メンバーのメッセージを削除する: /purge-user

/purge-user は、チャンネルとスレッドを順にたどり、1つのアカウントが書いたメッセージを削除します。スパムの波のあと、レイド用アカウント、あるいはあらゆる場所から消したいものを投稿したメンバーに使ってください。

  1. /purge-user と入力します。
  2. user に、メンション、またはメンバーのDiscordユーザーIDを入力します(17〜20桁)。IDをコピーするには、Discordで 開発者モード(Developer Mode)をオンにし(ユーザー設定の詳細設定)、メンバーを右クリックして ユーザーIDをコピー(Copy User ID)を選びます。退出した、またはBANされたメンバーはメンションできないため、IDを使います。
  3. 必要なら channel、days、reason で絞り込み(下記参照)、Enterキーを押します。
  4. ボットが実行しようとしている内容を、Confirm と Cancel の2つのボタンとともに表示します。
  5. Confirm を押します。削除が始まり、メッセージは進行に合わせて更新されます。

この間にボットが表示する内容はすべて非公開で、あなただけに見えます。

オプション

オプション 必須 内容
user はい メンション、またはユーザーIDそのまま(17〜20桁)。
channel いいえ このチャンネルとその配下のスレッドのみ。指定しない場合は、サーバーのすべてのチャンネルが対象です。
days いいえ 直近N日間のメッセージのみ(1〜5000)。指定しない場合は、履歴全体が対象です。
reason いいえ 512文字まで。モデレーションのログチャンネルに書き込まれ、メンバー本人には送られません。

🎯 対象になるもの、ならないもの

確認する前に読んでください。

対象になるのは、そのアカウントがテキスト、アナウンス、ボイス、ステージの各チャンネルと、スレッド(アクティブなものとアーカイブ済みのもの、フォーラムとメディアの投稿を含む)に書いたメッセージです。ただし、あなたとボットの両方がメッセージを管理できる場所に限ります。

ボットは、サーバー全体のロールだけでなく、あなたの権限を チャンネルごと に確認します。チャンネルが削除の対象になるのは、次の両方を満たす場合だけです。

  • あなたがそのチャンネルを見ることができ、そこで Manage Messages を持っている
  • ボットがそのチャンネルを見ることができ、履歴を読め、そこで Manage Messages を持っている

どちらかに権限が足りないチャンネルは、そのまま手を付けません。コマンドは失敗せず、ほかのチャンネルの処理を続け、該当するチャンネルを最後のレポートに一覧で示します。

次の2種類のスレッドは、条件がより厳しくなります。

  • プライベートスレッド: あなたにも Manage Threads が必要です。ないスレッドは対象から外れ、レポートにも名前は出ません。
  • アーカイブ済みスレッド: ボットにも Manage Threads が必要です。ボットはスレッドを開き直してメッセージを削除し、もう一度アーカイブします。アーカイブ済みのプライベートスレッドは、あなたとボットの両方が親チャンネルで Manage Threads を持つ場合にだけ探します。

行わないことは次のとおりです。

  • メンバーのBAN、キック、ミュート、警告は行わず、モデレーション履歴にも何も追加しません。行うのはメッセージの削除だけです。メンバーがまだサーバーにいる場合は、/ban や /mute を別に使ってください。
  • ボットが管理できても、あなた自身が管理できないチャンネルには手を出しません。これは意図したもので、手作業では削除できないものをコマンドで削除させることはありません。
  • ボットがそのチャンネルをすでにたどったあとにメンバーが投稿したメッセージの削除。
  • ほかのサーバーやダイレクトメッセージには触れません。
  • あなたに見えないチャンネルの名前を出すこと。そのチャンネルはレポートから外れるため、存在を知られることはありません。

ボット自身のIDは拒否されます。ボットのメッセージを削除すると、ログチャンネルの履歴が消え、ボットが管理しているロール、チケット、認証、プレゼント企画のパネルが壊れてしまうためです。


⏳ かかる時間とレポート

Discordにはボット向けの検索機能がないため、ボットは各チャンネルの履歴を1ページずつ読み、メンバーのメッセージを選び出します。

  • 14日未満 のメッセージは、最大100件ずつまとめて削除されます。
  • 14日より古い メッセージは 1件ずつ しか削除できません。履歴が長く活発なサーバーでは、長い時間がかかることがあります。可能なら days や channel で絞り込んでください。
  • 進行状況のメッセージは5秒に1回までの頻度で更新されます。ここまでに削除した件数、処理中のチャンネル、残りのチャンネル数が表示されます。
  • サーバーごとに、同時に実行できる一括削除は1つだけ です。2つ目を実行すると「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 を押したあとは、キャンセルできません。 ボタンは消え、停止用のコマンドもありません。途中でボットが再起動した場合、一括削除はそこで止まります。削除済みのものは削除されたまま、残りはそのまま残ります。

削除したメッセージは復元できません。 ボットは、削除したメッセージの内容を保存しません。


📋 記録される内容

モデレーションのログチャンネルを設定している場合、そこに2件の記録が残ります。

  1. MESSAGE PURGE STARTED。最初の削除の前 に書き込まれます。メンバー、対象範囲、あなたの名前、理由が含まれます。途中で止まっても、誰が誰に対して実行したかは分かります。
  2. MESSAGES PURGED。最後に書き込まれます。削除したメッセージの数と、そのチャンネル数が、同じ詳細とともに記録されます。

どちらの記録にもメッセージの本文は含まれず、件数だけが載ります。


🔑 使える人

次のすべてを満たす必要があります。

  • サーバーでモデレーション機能が有効になっている
  • その人がDiscordの Manage Messages 権限を持っている。この権限があるとコマンドが表示されます。
  • モデレーション設定で 許可されたモデレーターロール(スラッシュコマンド) を設定している場合は、そのロールのいずれかも持っている
  • 一括削除したいすべてのチャンネルで Manage Messages を持っている(上記のとおり。プライベートスレッドでは Manage Threads も必要)

ボットには、削除対象の各チャンネルで View Channel、Read Message History、Manage Messages が必要です。アーカイブ済みスレッドでは Manage Threads も必要です。


💡 例

スパムアカウントがサーバーに参加し、複数のチャンネルに招待リンクを投稿して、2日後にBANされました。

  1. アカウントのIDをコピーします(BANされたユーザーはメンションできません)。
  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 を指定してコマンドをもう一度実行してください。再実行しても問題ありません。すでに消えているメッセージは、見つからないだけです。

🚨 間違ったメンバーのメッセージを削除してしまった

取り消せません。メッセージは完全に失われます。