見出し画像

Discordの集中bot

作ったものの、説明書が必要だなと思ったので此処を使って書くことにした。


どんなbot?

今は亡きもくりの強制集中モードが恋しすぎて、Discordで似たようなことが出来ないかと思い作ったbot。
機能としては、

  • 集中する時間と休憩時間、またそのサイクルを何周するかというポモドーロタイマー機能。

  • 集中時間中は参加者全員サーバーミュートになり、休憩時間に入るとミュートが解除される。

  • ボイスチャンネルへの途中参加の場合も同様に集中時間中はミュート、休憩時間は非ミュートの状態での参加になる。

そんなもくりへの未練しかないbotです。

使い方

事前準備

使用するサーバにbotを招待します。

こちらにアクセスすると「集中bot」を招待する画面になるので、導入したいサーバを選択してbotを招待してください。
(11/14現在新規招待休止中です。折を見て再開します。)

こんな画面が出ます。サーバーを選択して次に進んでください。

②下記権限を要求されますがボイスチャンネルに参加したり、参加者のミュート等を操作したりする必要があるためです。問題ありませんので許可してください。

これらの権限確認が出ますので認証して進んでください
ロボットじゃねぇよ~!って認証をしたら
完了!

これでbotの招待が完了しました。

こんな風にクロワッサンみたいなアイコンが出ています。
緑色の〇が出ていれば使用可能です。

事前準備は以上で完了になります。
他には読み上げbotを入れて休憩/開始をわかりやすくするなどもありです。
【11/12追記】
一部の読み上げbotを集中開始後に参加させる形で一緒に使用すると、休憩時間に入る際に集中botもボイスチャンネルから退出してしまう現象を確認しました。一応最初の接続でボイスチャンネルを認識しているのでそのままでも再度ミュート・ミュート解除は続きますが、読み上げbotと併用する際は少々ご留意ください。また、この現象が発生する読み上げbotであっても①読み上げbotをチャンネルに参加させる②集中botを起動する、の順番であれば上記の現象は発生しません。
(原因を探るにはテストが足りてないのでまた確認します。)

使用する

いよいよ集中botを使用してみます。

①ボイスチャンネルに入ります。入らなくても使えないワケではないですが意図はしていないので、使用するときはまず入室してください。

エラーを吐いていたので、ボイスチャンネルに入っていない場合はこんなメッセージが投下されるようにしました。
のでチャンネルに入室してください。

②チャット欄を開いてコマンドを送信します。

「$go 20 5 10」のように各項目をチャット欄に入力して使用します。
(この例は20分集中、5周、10分休憩)

こんな感じ 冒頭の$は省略しないでください

スラッシュコマンドを使用する場合:
/go
で起動するとオプション入力欄が出てくるので、timesには集中時間、countには何周やるか、brkには休憩時間を全て分単位の半角数字で入力してください。(もちろん前述の$go~も同様に使用できます。)
40分集中して10分休憩を5周やりたい場合は、timeに40、countに5、brkに10を入力してエンター(または送信)を押します。
今スラッシュコマンドは調整中です。
11/21 スラッシュコマンド戻しました

③作業を開始します。

/goで実行すると上のエラーメッセージが表示されるのは私が処理を怠っている為です
そのうち直します

これは「2分集中、2周、2分休憩」にした際のメッセージ欄です。このテキスト投下と同時に順次全員サーバーミュートになります。

休憩開始と終わり

最終周でない場合、このように休憩時間入りのメッセージと休憩時間終了メッセージが投下されます。休憩終了メッセージの約10秒後に再度サーバーミュートになります。

設定周回終了後

最終周が終了後、このメッセージ投下後に集中botはボイスチャンネルから退出します。再度開始する場合はまたコマンドを送信するようにしてください。

注意点

  • フリープランで動かしているので重かったりする時があります。使用されていない時を見計らって不定期に再起動させています。

  • 「ゲスト招待(ボイスチャンネルから退出したらサーバからキックされる1回限りの参加形式での招待)」機能で招待したユーザーには強制ミュートが効きません。

  • botだけになった場合、「/cut」でbotをボイスチャンネルから退出させることが出来ますが、多分タイマーは止まらないので終わるまではチャット欄に色々表示されます。まだ同様に、タイマーの途中でbotだけ退出してしまった場合は「/join」でボイスチャンネルに復帰します。(サーバー管理者のみ実行可能)

  • 一回始めたら終わるまで中断できません。こっちもそのうち調整します。

  • もし集中モードの最中(サーバーミュートが機能している最中)にユーザーが退出した場合、そのユーザーが後日同サーバのボイスチャンネルに入室した際はサーバーミュートのままになっています。これはbotによるサーバーミュートの設定が継続しているためです。サーバー管理者がミュートを解除してください。

右クリックで出てくるここのところのチェックを外します。

何か気づいた点等があればお知らせ頂けると大変助かります。
ここのコメントでも下記のwaveboxでも大丈夫です。

またこのbotは完全に趣味で作った物なので気が済んだら消す予定です。

中身については上の記事に書いていますが、音を鳴らす機能とか色々ちょっと運用が難しかったのでその辺りは今動かしているbotからはさっくり削除しました。先人の知恵に感謝します。


いいなと思ったら応援しよう!