Herokuでdiscord-bcdicebotを動かす

キャラシ倉庫とか運営してるMASASHIGEさんが作ったDiscord連携日程調整botデイコードがしばらくHerokuで動いてたらしく、Freeプランでもそこそこやれるらしいという話を聞いた。1 https://discord.com/channels/597133335243784192/597133335243784194/786955488545341501 https://discord.com/channels/597133335243784192/597133335243784194/786956047427698689

そこで、しゅんしゅんひよこさんの作った、BCDiceをDisocrdで動かすdiscord-bcdicebotもHerokuで余裕で動くのでは? と思って導入してみて、数日動かしてみたがあまり問題が無さそう2だったので、備忘録的なメモを残す。

2021/02/20 追記

discord-bcdicebot のプロジェクト下記の設定を取り込んでもらって、手順をヘルプに書いてもらいました。今後はそちらを参照してください。 shunshun94.github.io

環境

以下、Windows環境での操作を想定しているが、Linux/Mac環境の人は適宜読み替えてください。

1. ツールの準備

Herokuのアカウントが必要なので適当に登録。

また、Heroku CLIとGitが必要なのでインストール

その後、コマンドラインで以下を入力してHeroku CLIでログイン。

heroku login

2. Discord Botの用意

discord-bcdicebotの使い方の「ダイスボットを登録する」の通りにDiscord Botを用意する。Botトークンを控えておく。
https://shunshun94.github.io/discord-bcdicebot/#:~:text=%E3%83%80%E3%82%A4%E3%82%B9%E3%83%9C%E3%83%83%E3%83%88%E3%82%92%E7%99%BB%E9%8C%B2%E3%81%99%E3%82%8B

3. ソースコードの準備

任意のディレクトリで以下のコマンドを入力し、discord-bcdicebotのソースを落とす。
ついでにディレクトリ移動もしておく。

git clone git@github.com:Shunshun94/discord-bcdicebot.git
cd discord-bcdicebot/

このままではHerokuを動かすのに必要なファイルが無いため、Procfileを作成する。内容は下記。3

Procfile

worker: java -jar target/discord-bcdicebot-jar-with-dependencies.jar "$DISCORD_BOT_TOKEN" "$BCDICE_API_URL" "$IGNORE_ERROR"

変更をコミット。

git add Procfile
git commit -m '任意のコメント'

4. Herokuにデプロイ

Herokuのアプリを作成してデプロイする。

heroku create
git push heroku master

このままだと設定が足りないので、以下のコマンドで環境変数を設定する。

heroku config:set DISCORD_BOT_TOKEN=TOKEN************TOKEN # 2.で作成したBotのトークン
heroku config:set BCDICE_API_URL=http://?????????????? # 利用するBCDice-APIのURL

自前でBCDice-APIを用意しないのであれば次のURLから公開サーバを探すのがいいだろう。
https://api-status.bcdice.org/

最後に、Heroku Dashboardを開いて新規作成したアプリのworkerをONにすれば終了。
https://dashboard.heroku.com/ f:id:trpg_yoshi:20201223001536p:plain

確認できてる問題

サンプルのオリジナルダイスボット表が文字化けしまくってる

f:id:trpg_yoshi:20201223001552p:plain どうせ文字コードの問題。たぶん「サンプルダイスボット-ラーメン表」「サンプルダイスボット-夜食表」と書いてある。 ぼくは使わない機能なので調べる予定なし。

2021/1/19 追記

Heroku の無料プランだと、Dyno は月に550時間までしか使用できないらしい。 (1ヶ月常駐させるには24時間×31日=約750時間は必要。) クレジットカードを Heroku に教えると無料枠を1000時間まで増やすことができる。

jp.heroku.com


  1. BCDice Official Chat の雑談で話が出た。

  2. 問題が無いわけではない。確認できてる問題は最後に述べる。

  3. start.shから少しだけ変更してる。