雑多開発ブログ(仮)

「黒い砂漠」ボス時刻を通知するBotを作ってみた「Discord」

#2019/7/30追記
botが時々落ちるため不定期に再起動することがあります。再起動した場合、設定したタイマーなどは初期化されますのでご承知ください。

昨年末、黒い砂漠に二年ぶりに復帰しました。現在はDiscord有のギルドに入っているのですが、身内の中でボスを通知してくれるbotがあればいいなーという話があがりました。
調べた所わりと簡単にDiscordのbotが作れそうだったので作ってみました。本記事ではbotの使い方の解説をします。技術的な話はまた別記事にさせていただきます。 (2019/4/12 追記 書きました。)
また、本botは音声通知の音源としてsoftalkの読み上げ音声を利用させていただいております。

Bot登録

discordapp.com

こちらからbotをサーバーに追加できます。このbotが行えるのはメッセージの送信、ボイスチャットへの参加及び発言のみです。

使い方

他のbotと同様に基本的にはコマンドを入力して使用します。全てのコマンドの頭にbが付きます。したがって、b ○○○のような形式で入力してください。

b next

現在の時刻から見て次に来るボスを通知します。

f:id:lilacxi:20190220214205p:plain

次のボスが二体の場合でも両方共に通知します。次のボスがなんだったか簡単に知りたい時に使ってください。

b today(2019/4/10 追加)

当日に出現するボスの一覧を通知します。

f:id:lilacxi:20190410160801p:plain

b join

コマンドを入力したユーザーが参加しているボイスチャンネルにbotを参加させます。

f:id:lilacxi:20190220214207p:plain

音声によるボス通知を設定したい場合はこのコマンドでbotを通話に参加させてください。

b kick

b joinで参加させたbotをボイスチャンネルから退場させます。

f:id:lilacxi:20190220214209p:plain

このコマンドではボス通知をオフにすることはできません。その場合は後述するコマンドを使用してください。

b set (通知時間) (再通知間隔)

メイン機能。数値Nを指定することで、ボスが登場するN分前に通知を行います。

f:id:lilacxi:20190220222723p:plain

上記の画像のようにb set 20 5と入力すると、ボスの20分前に最初の通知を行います。その後、ボスが登場するまで5分おきに通知を行います。
この再通知間隔を設定せずにb set 20と入力しても使うことができます。その場合、再通知は行いません。
通知時間は5の倍数分で設定することができます。(5,10,15,20...など)
通知を正確に行うために、コマンドを入力した時刻から一番近い5の倍数分からタイマーがセットされます。(16時43分にコマンドを入力した場合、16時45分からタイマーが開始します。)
タイマーが開始されるまでは、再セット及びオフにすることはできません。

またbotb joinによってボイスチャンネルに接続している場合、メッセージによる通知と同時に音声による通知を行います。もし、音声通知を希望する場合はb joinbotを通話に参加させてください。

b off

b setで設定したタイマーを解除します。

f:id:lilacxi:20190220222725p:plain

b setと同様にコマンドを入力した時刻から一番近い5の倍数分にタイマーが解除されます。

まとめ

取り合えず自分の欲しい機能だけを用意したのでどこかしら不便な所があるかもしれません。
不具合や要望がある場合は私のツイッターに連絡をお願いします。

twitter.com