MuteAll_ex は Among Us の会議を Discord のボイスチャットで行う際、全員のミュートを制御することが出来るbotです。
ミュートの有効/無効化は制御用メッセージのリアクションを押すことで切り替えることが出来ます。

ユーザが死亡者用ボイスチャンネルへ移動すると、ボットが生存者用と死亡者用のボイスチャンネルを適時移動してくれるようになります。
会議を聞かせる為に死亡者を生存者用チャンネルに移動させる場合は自動でミュート状態となります。
ボットがユーザを移動する条件は以下の通りです
- ミュート実行時:ユーザがミュート状態の場合、死亡者用ボイスチャンネルへ移動します
- ミュート解除時:死亡者用ボイスチャンネルにいた場合、生存者用ボイスチャンネルへミュート状態で移動します
インポスターにキルされた場合、次の会議が開かれるまで死亡者用ボイスチャンネルに移動しないで下さい(他ユーザにキルタイミングを教えてしまい、インポスター側が不利になることを防ぐためです)。
ボットアカウントは1つでも動作させることが可能ですが、複数のボットを使用し処理を分散させることも可能です。
参加人数が多く一部のユーザのミュート処理が遅れる場合に有効です。
セットアップには以下の作業が必要です
- Discord botアカウントの作成
- Discordサーバの設定
- bot起動用設定ファイル (config.json) 編集
- ボットの実行環境作成
- 開発者サイトにログイン
- Discord Developer Portal https://discordapp.com/developers/applications/
- "Applications" タブの ”New Application" を選択しアプリケーションを作成、
"My Applications" から作成したアプリケーションを選択- "General Information" タブで以下の項目を設定
- APP ICON:ボットのアイコン(設定は任意です)
- NAME:ボットのユーザ名
- "Bot" タブで "Add Bot" を選択、以下の項目を設定
- PRESENCE INTENT:有効
- SERVER MEMBERS INTENT:有効
- "General Information" タブで以下の項目を設定
- ボットアカウントの追加
- "My Applications" から作成したアプリケーションの
"OAuth2" タブの "OAuth2 URL Generator" にある "bot" にチェックを入れ、下に表示されるURLをコピー - コピーしたURLにアクセスし、"サーバーに追加" からボットを追加したいサーバを選択し "承認" を選択
- "My Applications" から作成したアプリケーションの
- ボットアカウントに管理者または以下の権限があるロールを付与
- メッセージを送信
- メッセージの管理
- メッセージ履歴を読む
- リアクションの追加
- メンバーをミュート
- メンバーのスピーカーをミュート
- メンバーを移動
- ボイスチャンネル2部屋(生存者部屋、死亡者部屋)を作成
作成するボイスチャンネルの名前は任意のものでOK - ロール @everyone または参加メンバに以下の権限があるロールを付与
※不具合があった場合誰でもサーバーミュートを解除できるようにする為
- メンバーをミュート
- メンバーのスピーカーをミュート
config_template.json をコピーし名前を config.json に変更して以下の編集を行って下さい
- トークン (token)
- 開発者サイト のボット用アプリケーション "Bot" タブの
"TOKEN" 項目にある "COPY" を選択(トークンは他人に知られないよう管理して下さい) - "token" の行、右側 " " の中にコピーしたトークン文字列を貼り付け
- 複数のボットを利用する場合は , で区切り ["トークン1", "トークン2", ... "トークンN"] となるよう記述して下さい
- 開発者サイト のボット用アプリケーション "Bot" タブの
- 生存者部屋 (survivors_voice_channel_id)
- 生存者部屋ボイスチャンネルを右クリックして "IDをコピー" を選択
- "survivors_voice_channel_id" の行、: の右側にコピーしたIDを貼り付け
- 死亡者部屋 (corpses_voice_channel_id)
- 生存者部屋ボイスチャンネルを右クリックして "IDをコピー" を選択
- "corpses_voice_channel_id" の行、: の右側にコピーしたIDを貼り付け
- ボット稼働テキストチャンネル (command_enable_text_channel_id)
- ボットを動作させるテキストチャンネルを右クリックして "IDをコピー" を選択
- "command_enable_text_channel_id" の行、: の右側にコピーしたIDを貼り付け
{
"token": ["AbCD1EFgH2IKLm3nOPQ4RsTU.VWxYZ5.ABCd6eFGH7IjKL8MNOp9qRST_UvWX1YZ"],
"survivors_voice_channel_id": 12345678901234567890,
"corpses_voice_channel_id": 12345678901234567891,
"command_enable_text_channel_id": 12345678901234567892
}
複数のボットで分散処理させる場合
{
"token": ["AbCD1EFgH2IKLm3nOPQ4RsTU.VWxYZ5.ABCd6eFGH7IjKL8MNOp9qRST_UvWX1YZ", "BbCD1EFgH2IKLm3nOPQ4RsTU.VWxYZ5.ABCd6eFGH7IjKL8MNOp9qRST_UvWX1YZ"],
"survivors_voice_channel_id": 12345678901234567890,
"corpses_voice_channel_id": 12345678901234567891,
"command_enable_text_channel_id": 12345678901234567892
}
- Python のインストール
- Pythonのインストーラをダウンロードしインストール(本ボットは3.9.*系で動作確認しています)
- インストールする際 "Add Python . to PATH" の項目にチェックを付けて下さい
- Python公式 https://www.python.org/
- Pythonのインストーラをダウンロードしインストール(本ボットは3.9.*系で動作確認しています)
- pipenv のインストール
- コマンドプロンプトやターミナルなどで
pip install pipenvまたはpip3 install pipenvを実行 - 環境変数
PIPENV_VENV_IN_PROJECTにtrueを設定
- コマンドプロンプトやターミナルなどで
- 実行に必要なパッケージのインストール
- MuteAll_ex がある場所でコマンドプロンプトやターミナルなどを開き
pipenv installを実行
- MuteAll_ex がある場所でコマンドプロンプトやターミナルなどを開き
- MuteAll_ex がある場所でコマンドプロンプトやターミナルなどを開き
pipenv run MuteAll.pyを実行- ボットのアカウントがオンラインになればOK
.s.startミュート/ミュート解除をリアクションで操作するメッセージの作成.h.help.H.Helpコマンドの説明
ボイスチャンネルの該当ユーザを右クリックし "サーバーミュート" のチェックを外すことで解除出来ます。
ボットは1ユーザずつミュート/ミュート解除を実行しており若干時間がかかる場合がある為、
通常は数十秒程度待ってから手動でサーバーミュートのチェックを外して下さい。
エラーメッセージに対応方法が書いてある場合はそれを試して下さい。
対応方法が書かれていない場合、解決できなかった場合などはボットを再起動して下さい。
-
discord.py
Copyright (c) 2015-present Rapptz
https://github.com/Rapptz/discord.py/blob/master/LICENSE -
MuteAll
Copyright (c) 2020 zahid47
https://github.com/zahid47/MuteAll/blob/master/LICENSE
参考元コミット (4f04b906584ba39f124153a61abe3c705bd917f2)