Skip to main content
ガイド
ガイドRolesBasics

Discord のロールと権限:Bot がそのロールを付与できない理由

ロールの階層は、Discord で何かがうまく動かない最も一般的な理由です。一度理解してしまえば、何時間ものトラブルシューティングを省けます。

公開日 著者: AlphaCloud5 分で読めます

どのサーバーオーナーもいずれ出くわす状況があります。Bot がロールを付与するはずなのに、付与しないのです。Bot には管理者権限があります。設定も保存されています。それでも何も起きません。

原因はほぼ必ず同じで、しかも権限とは関係がありません。

1つではなく2つの仕組み

Discord は、誰かが何かをしてよいかどうかを、2つの別々のステップで判断します:

  1. 権限。 そもそもこのロールは、ロールを管理してよいのか?
  2. 位置。 このロールは、対象のロールに触れられるほど上にあるのか?

ほとんどの人が知っているのは最初のステップだけです。つまずくのは2つ目のステップです。

ルールを1文で

メンバーは(Bot も含めて)、自分の最上位のロールより下にあるロールしか付与も削除もできません。そして、最上位のロールが自分のものより下にあるメンバーしかモデレートできません。

これは管理者権限があっても当てはまります。管理者権限が上書きするのは権限であって、階層ではありません。管理者権限を持っていても、ロールが一覧の一番下にある Bot は、実質的に何もできません。

例

ロールの一覧が、上から順に次のようになっているとします:

Owner
Administrator
Moderator
AlphaCloud          <- the bot's role
Verified
Member

Bot にできること:

  • Verified と Member を付与・削除する
  • 最上位のロールが Verified または Member のメンバーをモデレートする

Bot にできないこと:

  • Moderator を付与する。そのロールが Bot より上にあるからです
  • モデレーターをキック、BAN、または名前変更する
  • 管理者に手を出す

Bot にモデレーターロールを付与させたいなら、Bot のロールを Moderator より上にドラッグする必要があります。逆ではありません。

実践的なアドバイス

Bot のロールは、スタッフの最上位ロールのすぐ下に置きましょう。 このようにします:

Owner
Administrator
AlphaCloud          <- here
Moderator
Verified
Member

こうすれば、Bot はリーダー層より下のすべてを管理でき、リーダー層そのものには手を出せません。ほとんどの場合、まさにそれが望んでいる形です。

順序は サーバー設定 の ロール から、ドラッグで変更できます。

それでもうまくいかない3つの特殊なケース

階層が完璧でも、Discord が Bot に決して許さないことが3つあります:

サーバーオーナーの名前変更やモデレート。 オーナーは階層の外にいます。どのロールも、どの権限も、それを変えられません。

同じ位置にあるロールの編集。 同じ高さにある2つのロールは、互いに触れられません。同じ高さではなく、本当に上にある必要があります。

@everyone ロールの付与。 全員が自動的に持っているもので、付与することはできません。

チャンネルの権限はサーバーの権限より優先される

2番目に多いケースはこうです。ロール上は Bot がメッセージを送ってよいことになっているのに、ある1つのチャンネルでだけ送らない。

Discord では、サーバーの権限に対して、チャンネルごとに例外を設けられます。あるチャンネルで、@everyone または Bot のロールのいずれかに対して メッセージを送信 が明示的に拒否されていれば、サーバーのロールがどうなっていても、そちらが優先されます。

これは直接確認できます。チャンネルの設定で 権限 を開き、上部で権限を確認する対象として Bot を選びます。すると Discord が、そのチャンネルで Bot に何が許されているのかを正確に表示してくれます。

何にどの権限が必要か

Bot にまとめて管理者権限を渡したくない場合は、次が現実的な一覧です:

作業 権限
ロールを付与する ロールの管理
チケット、一時的なチャンネル チャンネルの管理
スパムを削除する メッセージの管理
ミュートする メンバーをタイムアウト
追い出す メンバーをキック、メンバーを BAN
AFK チャンネルに移動させる メンバーを移動
ニックネームにプレフィックスを付ける ニックネームの管理
誰が操作したかを知る 監査ログを表示

多くの機能を使うなら、それでも管理者権限が現実的な選択です。 より安全だからではなく、そうしないと新しい機能のたびに、足りない1つの権限を探し回ることになるからです。いずれにしても、より重要なのは階層のほうです。

トラブルシューティング用の短いまとめ

何かがうまく動かないときは、次の4つの質問を順番に確認しましょう:

  1. Bot のロールは、対象のロールより上にありますか?
  2. Bot のロールは、対象のメンバーより上にありますか?
  3. Bot は、サーバー単位で該当する権限を持っていますか?
  4. その権限は、このチャンネルで明示的に拒否されていませんか?

10回中9回は、1つ目か2つ目の質問が原因です。

その他の記事