Discordにおけるロール（役職）設定の基本

# はじめに
この記事ではDiscordでサーバーを建てたばかりの初心者の方に向けて、より詳しくロール（役職）の仕組みを知っていただくために解説していきます。
内容はブラウザ版およびデスクトップ版で解説していますので、ご了承ください。

# ロール（役職）とは
Discordではチャンネルの閲覧やメッセージの送信に至るまで、細かい権限を設定できます。
これらの各権限の設定を1つにまとめたものが**ロール（役職）**という機能です。（一種のテンプレート機能だと思ってください。）
このロールをサーバー内のメンバーに与えることで、そのメンバーにロールに設定した権限を与えることができます。

通常、ロールはサーバー設定から追加しなければ作成できませんが、初めからあるロールが2つだけあります。
1つ目は`@everyone`です。このロールはその名の通りサーバー内の全メンバーのことを指し、全メンバーに最低限与える権限を設定できます。
2つ目は厳密にはロールでは無いのですが、「サーバー管理人」です。サーバーを作ったあなたに与えられら役職で、特に設定をしなくてもサーバーの全権限を与えられています。

# ロールの設定場所
Discordではロールの権限を設定できる場所が3つあります。
1. `サーバー名横のV印 ⇒ サーバー設定 ⇒ ロール`
2. `カテゴリー名を右クリック ⇒ カテゴリーの編集 ⇒ 権限`
3. `チャンネル名を右クリック ⇒ チャンネルの編集 ⇒ 権限`
この記事の中では、この3つをそれぞれ単に「**サーバー設定**」「**カテゴリー設定**」「**チャンネル設定**」と呼ばせて頂きます。

# ロールの作成方法
ロールの新規作成は**サーバー設定**から行えます。
ここでロールの順序も変えることができ、この順序がそのまま**ロールの優先順位**となります。
どういうことかと言うと、下の画像を例にあげると、あるメンバーに「すごくえらい」と「まぁまぁえらい」の2つのロールが与えられていたとすると、「まぁまぁえらいより」上にある「すごくえらい」のロールの方が**優先**されるということです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/264873/0f21594a-57b9-ed22-2b88-ad07b1b18c4d.png)
もちろんドラッグして順番を入れ替えれば優先順位を変えることもできます。
といっても、この優先順位が影響するのはメンバーの名前の色と、「ロールの管理」権限を持ったメンバーが操作可能なロールくらいにしか影響はありません。
というのも、もし1人のメンバーに複数のロールを与えた場合、上位のロールの設定が上書きされるのではなく、単に各ロールの有効な権限を**足し合わせたもの**が、メンバーに与えられる権限になるためです。
そのため、メンバー全員に与えられているロール`@everyone`で有効にした権限を、別のロールで有効にする必要は無く、**追加で必要な権限だけ**を有効にすればいいのです。

カテゴリー・チャンネル設定ではサーバー設定で作成したロールと、メンバー別の権限が設定できます。
ここで設定した権限はサーバー設定に**上書き**され、追加しなかったロールはサーバー設定を**そのまま引き継ぎ**ます。
ただし、1人のメンバーに複数のロールが与えられていた場合、その内1つのロールでもカテゴリー・チャンネル設定で設定してしまえば、ロールの**優先順位に関わらず**上書きされてしまいます。
カテゴリー・チャンネル設定でむやみにロールを追加すると、あとから**管理しにくくなる**ため、サーバー設定に対してカテゴリー・チャンネル別に**変更したい設定だけ**を追加するように気を付けましょう。

# ロールの設定方法
この画像は実際の設定画面ですが、サーバー設定とカテゴリー・チャンネル設定では微妙に設定方法が違います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/264873/89f675c2-dfe9-bdfd-f75d-8e0e2e162cbf.png)
上2つはサーバー設定での選択肢ですが、単純に権限有効・無効が2択で選べるのが分かると思います。
一方、下3つのカテゴリー・チャンネル設定では選択肢が3つあります。
左右の選択肢は有効・無効であるのはなんとなく分かりますが、真ん中の選択肢はよく分かりませんね。
これはサーバー設定を**引き継ぐ**という選択肢になります。
具体的に言うと、この選択肢を選べばその項目のサーバー設定が有効になっている場合、
「**カテゴリー・チャンネル設定で有効にしなくてもサーバー設定を引き継いで有効になる**」
ということです。
これのおかげで、カテゴリー・チャンネル設定ではサーバー設定に**上書きしたい権限**を変えるだけで済むわけです。

チャンネル設定は変更しない限りカテゴリー設定と**同期**されていて、カテゴリー設定を変更するとカテゴリー内のチャンネル設定も変わるようになっています。
しかし、同じカテゴリー内でも特定のチャンネルだけ別の設定にしたい場合もあるため、チャンネルの編集からチャンネル別に権限の設定が変更できます。
ただ、この場合カテゴリー設定が変更されてもチャンネル設定には**反映されない**ため、個別に設定し直す必要があります。
同期状態に戻したい場合は、チャンネル設定から「いますぐ同期する」を押せば戻すことができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/264873/9dc2800e-36f9-d058-0147-7b3cbd133587.png)
また、チャンネル設定が**引き継ぐ**設定はカテゴリー設定ではなく、**サーバー設定**である点にも注意してください。
いずれにしろ、チャンネル設定はのちに権限設定の変更が必要になったときに、個別に設定し直す手間がかかるため、**極力避けるべき**です。

# ロール設定の優先順位
サーバー設定・カテゴリー設定・チャンネル設定・メンバー別設定、複数に渡って権限を設定すると、いったいどの設定が適用されているのかよく分かりませんね。
そこでロール設定の優先順位を表にまとめてみました。

| 優先順位 | 設定                                |
|--------:|:------------------------------------|
| 1       | サーバー設定の**管理者**権限          |
| 2       | チャンネル設定の**メンバー別**権限設定 |
| 3       | チャンネル設定の権限設定              |
| 4       | カテゴリー設定の**メンバー別**権限設定 |
| 5       | カテゴリー設定の権限設定              |
| 6       | サーバー設定の権限設定                |

上の表のように、どんなに強い権限を与えられようが、メンバー別に権限を設定すると、それが優先されるため注意が必要です。
また、複数のロールが付いているメンバーの場合、ロールの優先順位に関わらず各ロールで有効になっている権限を**足し合わせた権限**が、そのメンバーに与えられる権限になります。
それと、当然と言えば当然なのですが、サーバー設定で**管理者**権限を与えたロールはすべての設定よりも優先されます。

# メンバーへのロールの付与・剥奪の方法
最後になりますが、ロールの付与・剥奪には3つ方法があります。
1. `サーバー設定 ⇒ メンバー`
2. `メンバーリスト ⇒ メンバーを左クリック ⇒ ロール`
3. `メンバーリスト ⇒ メンバーを右クリック ⇒ ロール`
1と2では⊕マークでロールを付与して、各ロールの●部分を押すとロールを剥奪します。
3ではチェックボックス形式で付与したいロールを選ぶことができます。

# ロール設定のややこしいところ
ここからは余談になります。
例えばサーバー内に「メンバーA」がいたとします。このメンバーには「庶民」と「貴族」というロールが与えられていたとします。
「庶民」ロールでは「メッセージを送信」権限が有効になっていて、「貴族」には「メッセージを送信」と「メッセージの管理」権限が有効になっています。
「メンバーA」にはこの2つのロールが与えられているため、足し合わせて「メッセージを送信」と「メッセージの管理」権限が有効になっています。
ここで、あるチャンネルの設定で「貴族」ロールに対して「メッセージを送信」権限を無効にしてみましょう。
サーバー設定の「貴族」ロールの権限に上書きされ、「貴族」ロールしか与えられていないメンバーは、そのチャンネルにおいてメッセージを送信することはできなくなるでしょう。
では、「庶民」ロールも持っている「メンバーA」はどうでしょうか？
実は「庶民」ロールの権限は上書きされていないものの、「貴族」ロールが上書きされてしまった影響で「メンバーA」もそのチャンネルでメッセージを送ることはできなくなってしまいます。
しかし、このややこしい仕組み、1つの式で表すことができます。

```
メンバーに与えられたすべてのロールのサーバー設定を足し合わせた権限
 +
メンバーに与えられたすべてのロールのカテゴリー・チャンネル設定を足し合わせた権限
 =
そのチャンネルで実際にメンバーに与えられる権限
```

この**足し合わせ**という仕組みがややこしさの要因となっています。
先ほどの「メンバーA」が2つのロールを与えられているにも関わらず、チャンネル設定で片方のロールが上書きされただけで「メッセージを送信」権限を失ってしまったのは、サーバー設定上の2つのロールを足し合わせた権限に、チャンネル設定上の1つのロールを足し合わせた権限が上書きされてしまったからです。
もちろん、チャンネル設定でさらに「庶民」ロールの「メッセージを送る」権限を有効にするように設定すれば足し合わせによって相殺されて、「メンバーA」はめでたくメッセージを送ることができます。

# 最後に
Discordのロールに対する知識はある程度身に付いたでしょうか。
初めてDiscordを使い始めた方にはなかなか難しい機能だと思いますが、これを使いこなすとより充実したサーバー運営ができるようになります。
分からないことや内容にご指摘があれば、ぜひ記事コメント欄で質問してください。