キャラシ倉庫とか運営してる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/
確認できてる問題
サンプルのオリジナルダイスボット表が文字化けしまくってる
どうせ文字コードの問題。たぶん「サンプルダイスボット-ラーメン表」「サンプルダイスボット-夜食表」と書いてある。
ぼくは使わない機能なので調べる予定なし。
2021/1/19 追記
Heroku の無料プランだと、Dyno は月に550時間までしか使用できないらしい。 (1ヶ月常駐させるには24時間×31日=約750時間は必要。) クレジットカードを Heroku に教えると無料枠を1000時間まで増やすことができる。
-
BCDice Official Chat の雑談で話が出た。↩
-
問題が無いわけではない。確認できてる問題は最後に述べる。↩
-
start.shから少しだけ変更してる。↩