DCDBotとは?
DCDBotは、異なるDiscordサーバーのテキストチャンネル同士を「ブリッジ」として接続し、メッセージをリアルタイムで双方向に転送するBotです。
Webhookを使った名前・アイコン付き転送、メッセージの編集・削除の同期、スパム防止、NGワードフィルター、ブリッジ内投票など、多彩な機能を備えています。
📡 メッセージ転送
ブリッジに接続されたチャンネル間でメッセージをリアルタイム同期。Webhookで送信者名・アイコンもそのまま表示。
✏️ 編集・削除の同期
送信後のメッセージ編集・削除も全ブリッジ先に反映。返信(リプライ)の引用も追従します。
🛡️ スパム・フィルター
10秒以内に5件以上の投稿でクールダウン(60秒)。NGワードはサーバーごとに設定可能。
📊 ブリッジ内投票
接続された全サーバーへ同時に投票を送信。リアクション集計・時間制限・結果表示に対応。
🎭 ブリッジロール
サーバーをまたいで使えるロール機能。メンションや一括通知をブリッジ全体に送れます。
🔗 コードで接続
6文字の参加コードを共有するだけで簡単接続。管理者権限があれば誰でも利用可能。
ブリッジの仕組み
ブリッジとは、複数のサーバー・チャンネルをひとつのグループとして接続する仕組みです。
#general
Bridge ID
#global
#bridge
管理者が /setup でブリッジを作成すると参加コードが発行されます。
別サーバーの管理者がそのコードで /join することで接続が完成します。
コマンド一覧
/ スラッシュ と e! プレフィックス の2種類があります。 管理者向けと全員向けに分けて記載しています。
🔗 ブリッジ管理
| コマンド | 種別 | 権限 | 説明 |
|---|---|---|---|
/init |
/ スラッシュ | 管理者 | 対話形式でブリッジ(サーバー間連携)の初期設定を行う機能です。 |
/setup |
/ スラッシュ | 管理者 | このチャンネルで新しいブリッジを作成。参加コードを発行します。 |
/join code:XXXXXX |
/ スラッシュ | 管理者 | 参加コードを使って既存のブリッジに接続します。 |
/leave |
/ スラッシュ | 管理者 | このチャンネルをブリッジから切断します。 |
/status |
/ スラッシュ | 管理者 | ブリッジ接続状況(接続サーバー一覧など)を確認します。 |
/config [filter_words] |
/ スラッシュ | 管理者 | NGワードをカンマ区切りで設定。省略すると現在の設定を表示します。 |
e!setup |
e! プレフィックス | 管理者 | スラッシュ版と同じ。ブリッジを新規作成します。 |
e!join <コード> |
e! プレフィックス | 管理者 | スラッシュ版と同じ。参加コードでブリッジ接続します。 |
e!leave |
e! プレフィックス | 管理者 | スラッシュ版と同じ。ブリッジから切断します。 |
e!config [ワード,...] |
e! プレフィックス | 管理者 | NGワードを設定・確認します。 |
📊 投票
| コマンド | 種別 | 権限 | 説明 |
|---|---|---|---|
/poll <質問> <選択肢> [分] |
/ スラッシュ | 管理者 | ブリッジ全体に投票を送信。選択肢はカンマ区切り(最大10個)。分数を指定すると自動集計。 |
🎭 ブリッジロール管理
| コマンド | 種別 | 権限 | 説明 |
|---|---|---|---|
/role create <ロール名> |
/ スラッシュ | 管理者 | ブリッジ専用ロールを作成します(Discordのロールとは無関係)。 |
/role give @ユーザー <ロール名> |
/ スラッシュ | 管理者 | ユーザーをブリッジロールに追加します。 |
/role remove @ユーザー <ロール名> |
/ スラッシュ | 管理者 | ユーザーをブリッジロールから削除します。 |
/role delete <ロール名> |
/ スラッシュ | 管理者 | ブリッジロール自体を削除します。 |
/role list |
/ スラッシュ | 管理者 | ブリッジロールの一覧とメンバーを表示します。 |
/role ping <ロール名> <メッセージ> |
/ スラッシュ | 管理者 | ロールメンバー全員に一括通知を送ります(ブリッジ全サーバー)。 |
e!role-create <ロール名> |
e! プレフィックス | 管理者 | プレフィックス版ロール作成。 |
e!role-give / e!role-add |
e! プレフィックス | 管理者 | ロールにメンバーを追加(どちらも同じ動作)。 |
e!role-remove / e!remove |
e! プレフィックス | 管理者 | ロールからメンバーを削除(どちらも同じ動作)。 |
e!role-delete <ロール名> |
e! プレフィックス | 管理者 | ブリッジロールを削除します。 |
e!role-list |
e! プレフィックス | 管理者 | ブリッジロール一覧を表示します。 |
e!role-ping <ロール名> <メッセージ> |
e! プレフィックス | 管理者 | ロールメンバーに一括通知します。 |
📢 全員向け
| コマンド | 種別 | 権限 | 説明 |
|---|---|---|---|
e!status |
e! プレフィックス | 全員 | ブリッジの接続状況を表示します。 |
e!m <ロール名> |
e! プレフィックス | 全員 | ブリッジロールのメンバーをブリッジ全体でメンションします。 |
e!help |
e! プレフィックス | 全員 | コマンド一覧を表示します(管理者は管理者向けコマンドも表示)。 |
技術仕様
🐍 言語・フレームワーク
Python 3 / discord.py (commands + app_commands)
🗄️ データベース
PostgreSQL(asyncpg)
コネクションプール(最大20)
🔗 Webhook
チャンネルごとに自動生成・キャッシュ。無効化時は自動復旧。
🛡️ スパム検知
10秒以内に5件投稿でクールダウン(60秒)。サーバー×ユーザー単位で管理。
