ロール保持
ロール保持は、メンバーがサーバーを退出してから再び参加(再参加)したときに、退出前に持っていたロールを自動で復元する機能です。いわゆる「スティッキーロール(sticky roles)」と呼ばれる仕組みで、メンバーが抜けて入り直しても、ロールの付け直しを手作業で行う必要がなくなります。機能の有効化や、復元の対象から外したいロール(除外ロール)の指定は、ダッシュボードから設定できます。
この機能はベータ版の現在、無料で利用できます。サーバーごとに有効化して使います。
できること
- メンバーが退出前に持っていたロールを、再参加時に自動で復元します。手作業でロールを付け直す必要がありません。
- 除外ロールを指定することで、特定のロールだけは復元の対象から外せます(例: 期間限定のロールや、再付与したくない運営上のロール)。
- 復元する/しないを、サーバーごとに有効/無効で切り替えられます。
/role-retention clearで、保存済みのロール記録を消去できます(プライバシー対応や、記録のリセットに使えます)。
仕組み(再参加時の自動復元)
ロール保持は「捕捉(キャプチャ)」と「復元(リストア)」の 2 段階で動作します。
| 段階 | 起きること |
|---|---|
| 捕捉(capture) | メンバーがメッセージを送信したときに、背景でそのメンバーが現在持っているロールの集合を記録します。前回からの差分を見て、ロール構成に変化があったときだけ記録を更新します。 |
| 復元(restore) | メンバーが再参加したことを検知すると、記録しておいたロールの中から復元対象を選び、まとめて付与します。 |
本 Bot はメンバー情報を常時キャッシュしない仕様のため、記録されるのは退出時点ではなくメッセージ送信時のロールです。機能を有効化した直後や、まだ一度も捕捉されていないメンバーは記録が存在しないため、再参加しても復元する対象がありません。しばらく運用して捕捉が進むことで、復元が機能するようになります。
設定画面の構成
ロール保持の設定は、Bot 全体に関わる設定と、サーバーごとの設定に分かれています。
Bot 全体設定(ダッシュボード)
| 項目 | 役割 |
|---|---|
| 機能の有効化トグル | ロール保持機能そのものを使うかどうかの大本のスイッチです。 |
/role-retention setting の有効/無効と権限 | 設定パネルを開くコマンドを利用可能にするか、また誰が使えるかを設定します。 |
/role-retention clear の有効/無効と権限 | 記録を削除するコマンドを利用可能にするか、また誰が使えるかを設定します。 |
コマンドごとの権限の考え方は コマンドの権限設定 を参照してください。
サーバー別設定
| 項目 | 役割 |
|---|---|
| 有効/無効 | そのサーバーでロール保持(捕捉と復元)を動かすかどうかを切り替えます。 |
| 除外ロール | 復元の対象から外したいロールを選びます。ロール選択 UI から指定でき、変更はリアルタイムで反映されます。 |
設定の手順
機能を有効化する
ロール保持の設定ページを開き、「機能の有効化」のトグルをオンにします。このトグルがオフのままだと、捕捉も復元も行われません。
サーバーでロール保持を有効にする
サーバー別設定で「有効/無効」をオンにします。ロール保持はサーバーごとに有効化して使うため、対象のサーバーで有効になっていることを確認してください。
除外ロールを指定する
復元の対象から外したいロールがある場合は、サーバー別設定の「除外ロール」のロール選択 UI から指定します。ここで指定したロールは、再参加時に復元されません。
コマンドの有効状態と権限を設定する(任意)
/role-retention setting と /role-retention clear を、Bot 全体設定でそれぞれ有効/無効・権限を調整できます。これらのコマンドは manage_roles(ロールの管理)権限を必要とします。権限の詳しい考え方は コマンドの権限設定 を参照してください。
コマンド一覧
ロール保持では、Discord 上で次のスラッシュコマンドを利用できます。いずれもサーバー内専用で、manage_roles(ロールの管理)権限が必要です。
/role-retention setting
ロール保持機能の有効化と、除外ロールの設定パネルを開きます。このパネルから、サーバーでの有効/無効の切り替えや、復元対象から外す除外ロールの指定ができます。
- 必要な権限:
manage_roles(ロールの管理) - ダッシュボードの設定ページと同じ内容を、Discord 上から操作できます。
/role-retention clear
保存済みのロール記録を削除します。プライバシー対応や、記録をリセットしたいときに使います。
| 指定 | 動作 |
|---|---|
member を指定する | 指定したメンバー分のロール記録だけを削除します。 |
member を省略する | サーバー全体のロール記録を削除します。 |
- 必要な権限:
manage_roles(ロールの管理)
/role-retention clear でロール記録を削除すると、それ以降の再参加では復元が行われません。再び捕捉が進むまで(メンバーが発言するなどして記録され直すまで)、復元対象のないメンバーが出てきます。とくに member を省略したサーバー全体の削除は、元に戻せないため慎重に実行してください。
自動で除外されるロール
ダッシュボードで指定する除外ロールとは別に、次のロールは Discord の仕様や権限上の都合から、常に復元の対象外になります。これらは設定で除外を解除することはできません。
| 種類 | 復元されない理由 |
|---|---|
| Discord に管理される連携ロール(managed ロール) | bot 連携や外部サービスとの連携で Discord が自動管理しているロールのため、Bot 側で付与できません。 |
@everyone ロール | 全メンバーが標準で持つロールであり、個別に付与・記録する対象ではありません。 |
| Bot 自身の最上位ロールと同等以上のロール | Discord の権限の仕様上、Bot は自分のロールより上位(または同等)のロールを付与できません。 |
実際の動作と既定値
- 付与できないロールの扱い: 付与できないロールはスキップされ、付与可能なロールだけがまとめて付与されます。復元全体が中止されるわけではありません。
- 有効化の単位: Bot 全体設定のトグルと、対象サーバーの有効/無効が両方オンのときだけ、捕捉と復元が行われます。
注意点・うまくいかないとき
- Bot のロールより上位のロールは復元できません: 復元したいロールがある場合は、サーバーの設定画面で Bot のロール位置を、復元したいロールよりも上に配置 してください。
次のステップ / 関連ページ
最終更新: