discord-bcdicebot
概要
Discord で BCDice を使うための bot です。各サーバに対して、ユーザが導入して利用します。
DOWNLOAD
必要なもの
このアプリは Discord のチャットに参加するユーザのうち、1人の環境で動かす必要があります。動かす人には以下の準備が求められます
Java 8 ないしそれ以降の実行環境
Java 実行環境 のインストール方法は Javaをインストールするには をご覧ください。
BCDice-API サーバ
BCDice-API が動作しているサーバを用意してください。ローカルでも構いませんし、貸してくれる人から借りてもかまいません。
使い方
ダイスボットを登録する
Discord に新規の Bot を作成します。サーバ1つにつき代表者1人がいれれば大丈夫です
- 開発者ページ にアクセスし、New APP をクリックします
- 最低限 APP NAME と APP ICON を入力し、 Create App をクリックします
- Create Bot User というボタンをクリックし、このダイスボット用のユーザを作成します
- Bot の Username の下に "Token:click to reveal" というのがあるのでクリックし、出てくるランダムな文字列をメモします
この文字列は他の人に教えないこと。
この文字列は NDA0MgAIC0QK18lU0dxMt99F.HuWAIt.Nh9OTLbjxdMp3pcmw3Lsqd4aQlb
のような形式の値となります(この値はダミーです)。
- 画面上部の APP DETAILS のところに書かれた Client ID の数字をメモします
- 次の URL にアクセスします
https://discordapp.com/oauth2/authorize?client_id=[Client Id の数字]&scope=bot&permissions=0
アプリケーションを起動する
Bot を起動し、 Discord 上で BCDice を利用可能にします。サーバ1つにつき代表者1人がアプリを起動すれば大丈夫です
手元のサーバで起動する場合
- DOWNLOAD から Discord-Bcdicebot をダウンロードし、解凍します
- Windows を使っている方は start.bat をメモ帳で開きます (ほとんどの方はこちら!)。
Linux/macOS を使っている方は start.sh を適当なテキストエディタで開きます
以下では start.bat を編集している前提で記載します
- DISCORD_BOT_TOKEN= の末尾に先の 4. でメモした Token を貼り付けます
- BCDICE_API_URL= の末尾に利用する BCDice-API サーバの URL を貼り付けます
- 管理用パスワードを決め、PleaseChangeMeIfYouUseThisを決めた管理用パスワードに書き換えます
- REM set BCDICE_PASSWORD=PleaseChangeMeIfYouUseThisの "REM" を削除します
- (必須ではない)
REM set BCDICE_API_SECONDARY=http://secondary.bcdice-api.yourdomain.co.jp/の "REM" を削除します
その上で http://secondary.bcdice-api.yourdomain.co.jp/
を予備の BCDice-API サーバの URL に書き換えます
- (必須ではない)
REM set BCDICE_DEFAULT_SYSTEM=DiceBotの "REM" を削除し、DiceBot
を利用するデフォルトのシステム名に書き換えます
- (必須ではない)
REM set BCDICE_MENTION_MODE=1の "REM" を削除し、ダイスを振った時に振った人にメンションされるようにします
- Windows を使っている方は メモ帳を閉じ、 start.bat をダブルクリックします
Linux/macOS を使っている方は編集を保存・完了し start.sh を実行します
- Bot が起動します。Discord の参加者一覧に Bot がオンラインの状態で存在すれば成功です
- 終了はキーボードの Ctrl + C を押してください
heroku を使う場合
PaaS サービス heroku を使って動かすことが可能です。
- Git を導入します。Git: https://git-scm.com/
- Heroku のアカウントを作成します。Heroku: https://www.heroku.com/home
- Heroku CLI を導入します。インストールガイド: https://devcenter.heroku.com/articles/heroku-cli
- GitHub からソースコードを clone してきます。URL は
git@github.com:Shunshun94/discord-bcdicebot.git
- clone してきたディレクトリ内で
heroku login
を実行し、ログインします
- clone してきたディレクトリ内で
heroku create
を実行し、heroku 上に App を作成します
- clone してきたディレクトリ内で
git push heroku master
を実行し、heroku 上にソースコードを push します
- clone してきたディレクトリ内で以下を実行し、環境変数を設定します
- 先の 4. でメモした Token を登録します
heroku config:set DISCORD_BOT_TOKEN=NDA0MgAIC0QK18lU0dxMt99F.HuWAIt.Nh9OTLbjxdMp3pcmw3Lsqd4aQlb
(トークンはダミーです)
- 利用する BCDice-API サーバの URL を登録します
heroku config:set BCDICE_API_URL=http://xxxx.xxxxx.xxxxx.example.com/
(URL はダミーです)
- 管理用パスワードを設定します
heroku config:set BCDICE_PASSWORD=MY_PASSWORD
(MY_PASSWORD を任意の文字列に書き換えてください)
- (必須ではない) 以下の環境変数を設定します。
- 予備の BCDice-API サーバを登録します。
heroku config:set BCDICE_API_SECONDARY=http://xxxx.xxxxx.xxxxx.example.com/
(URL はダミーです)
- どのシステムのダイスボットを使うのか設定していない部屋で利用するダイスボットを設定します。
heroku config:set BCDICE_DEFAULT_SYSTEM=DiceBot
(DiceBot は任意のシステムに書き換えてください)
- ダイスを振った時に振った人にメンションを飛ばすようにします。
heroku config:set BCDICE_MENTION_MODE=1
- Heroku の Dashboard から worker を起動します。Heroku の Dashboard:https://dashboard.heroku.com/
利用する
チャットにただただ 2d6
等と打ち込めばダイスが振られます。他にどのようなコマンドが利用できるのかは BCDice コマンドリストをご参照ください。
各システム向けの機能を使いたい場合、システムを切り替えましょう。
bcdice set [利用するシステムの名前]
とチャット上で発言してください。
例えば bcdice set SwordWorld2.5
等です。
どんなシステムが利用できるのかは bcdice list
と発言すれば確認できます。
各システムでどんな機能が利用できるのかを確認する際は bcdice help [システムの名前]
と発言すれば表示できます。
例えば bcdice help SwordWorld2.0
等です。
数字ではなく[
と]
でカンマ区切りのリストを与えるとそのリストのそれぞれについてダイスを振ることができます。例えば[こぶた,たぬき,きつね,ねこ] 2d6
とすることでこぶた、たぬき、きつね、ねこのそれぞれについて 2d6 を振ることが可能です。
管理者はオリジナルのダイスボット表を追加することもできます。詳細は管理コマンドをご確認ください。
チャットに bcdice help
と打てば何ができるのかが一覧されるので困ったときは実行してみてください。
管理コマンドを使う
チャットに bcdice admin [パスワード] help
と打てば管理者として利用できるコマンドの一覧が出力されます
ダイスサーバの変更および管理
接続する BCDice-API サーバを変更する場合は bcdice admin [パスワード] setServer [BCDice-APIサーバのURL]
ただし、このコマンドを実行した場合、変更前の BCDice-API サーバは bot によって忘れられるのではなく、予備のサーバとして bot の内部に保持されます。
もし、BCDice-API サーバへのアクセスになんらかの問題があった場合、 bot は内部に保持された別の BCDice-API サーバを代わりに使おうとします。
bot が保持する予備のサーバから特定の BCDice-API サーバを削除したい場合はbcdice admin [パスワード] removeServer [BCDice-APIサーバのURL]
bot が保持する予備のサーバから特定の BCDice-API サーバを一覧したい場合はbcdice admin [パスワード] listServer [BCDice-APIサーバのURL]
部屋ごとの設定のエクスポート・インポート
各部屋ごとに設定されたシステムの一覧を取得する場合は bcdice admin [パスワード] export
以下のような結果が得られます
331084010098917376:SwordWorld2.0
551310555730673666:DoubleCross
541477835299356673:Cthulhu
複数の部屋に対してシステムを設定する場合は以下のようにします。
アプリを再起動した際は全部屋のシステムの設定がリセットされますので、import と組み合わせると原状復帰が容易です
bcdice admin [パスワード] import
331084010098917376:SwordWorld2.0
551310555730673666:DoubleCross
541477835299356673:Cthulhu
ダイスコマンドに接頭語を設定する
チャットに送信されたメッセージを全て BCDice-API サーバに送信したい場合は次のようにします。
bcdice admin [パスワード] suppressroll disable
BCDice-API サーバに送る必要のありそうな発言だけを送信するようにする場合は次のようにします。こちらがデフォルト設定です。
bcdice admin [パスワード] suppressroll on
また、先頭に /r
等が無いと BCDice-API サーバにコマンドを送信しないようにすることもできます。
bcdice admin [パスワード] suppressroll /r
このコマンドワードは /
で始まる物であれば任意のものを設定できます。
bcdice admin [パスワード] suppressroll /diceroll
とすれば発言の先頭に /diceroll
があるものだけを BCDice-API サーバに送信します。
独自のダイスボット表
独自のダイスボット表を追加する場合は Discord にダイスボット表の情報をアップロードし、アップロード時のコメントに次のように記載してください。
bcdice admin [パスワード] addDiceBot [ダイスボット表名]
追加した後ダイスボット表の名前がチャット上で発言されるとダイスボット表が振られます。
この際にアップロードするダイスボット表のサンプルは
オリジナル表 · BCDiceコマンドガイド
ないしはdiscord-bcdicebot/originalDiceBots/サンプルダイスボット-夜食表を参照してください。
両者でフォーマットが異なりますが、どちらも利用できます。
また、追加するダイスボット表は UTF-8 で作成されている必要があります。
Windows 付属のメモ帳であれば名前を付けて保存する際に保存ボタンの左に「文字コード」を選択できる箇所があります。ここで UTF-8
を選択した上で保存してください。
ダイスボット表を削除する際は以下のようにしてください。
bcdice admin [パスワード] removeDiceBot [ダイスボット表名]
ダイスボット表の一覧は次のようにすると確認できます。
bcdice admin [パスワード] listDiceBot
Bot が登録されている Discord サーバの情報を取得する
Bot が登録されているサーバの一覧を取得するには次のようにします。
bcdicediscord [パスワード] listServers
Bot が登録されているサーバに存在する部屋の一覧を取得するには次のようにします。情報は
bcdicediscord [パスワード] listRooms
Bot が登録されているサーバに存在する部屋の ID 一覧を取得するには次のようにします。
bcdicediscord [パスワード] listRoomIds
連絡先
バグ報告など
Twitter アカウントは@Shunshun94。ないしはリポジトリに issue を追加してください。
寄付先
Amazon のウィッシュリスト
ライセンス
使用しているライブラリ
- (Eclipse Public License - v 1.0) (GNU Lesser General Public License) Logback Classic Module (ch.qos.logback:logback-classic:1.2.3 - http://logback.qos.ch/logback-classic)
- (Eclipse Public License - v 1.0) (GNU Lesser General Public License) Logback Core Module (ch.qos.logback:logback-core:1.2.3 - http://logback.qos.ch/logback-core)
- (Apache License, Version 2.0) xsalsa20poly1305 (com.codahale:xsalsa20poly1305:0.10.1 - https://github.com/codahale/xsalsa20poly1305)
- (MIT License) minimal-json (com.eclipsesource.minimal-json:minimal-json:0.9.5 - https://github.com/ralfstx/minimal-json)
- (The Apache Software License, Version 2.0) Jackson-annotations (com.fasterxml.jackson.core:jackson-annotations:2.9.0 - http://github.com/FasterXML/jackson)
- (The Apache Software License, Version 2.0) Jackson-core (com.fasterxml.jackson.core:jackson-core:2.9.3 - https://github.com/FasterXML/jackson-core)
- (The Apache Software License, Version 2.0) jackson-databind (com.fasterxml.jackson.core:jackson-databind:2.9.3 - http://github.com/FasterXML/jackson)
- (The Apache Software License, Version 2.0) com.neovisionaries:nv-websocket-client (com.neovisionaries:nv-websocket-client:2.6 - https://github.com/TakahikoKawasaki/nv-websocket-client)
- (Apache 2.0) OkHttp Logging Interceptor (com.squareup.okhttp3:logging-interceptor:3.9.1 - https://github.com/square/okhttp/logging-interceptor)
- (Apache 2.0) OkHttp (com.squareup.okhttp3:okhttp:3.9.1 - https://github.com/square/okhttp/okhttp)
- (Apache 2.0) Okio (com.squareup.okio:okio:1.13.0 - https://github.com/square/okio/okio)
- (The Apache Software License, Version 2.0) Apache Commons Codec (commons-codec:commons-codec:1.9 - http://commons.apache.org/proper/commons-codec/)
- (Apache License, Version 2.0) Apache Commons IO (commons-io:commons-io:2.5 - http://commons.apache.org/proper/commons-io/)
- (The Apache Software License, Version 2.0) Apache Commons Logging (commons-logging:commons-logging:1.2 - http://commons.apache.org/proper/commons-logging/)
- (The Apache Software License, Version 2.0) Vavr (io.vavr:vavr:0.10.1 - http://vavr.io)
- (The Apache Software License, Version 2.0) Vavr Match (io.vavr:vavr-match:0.10.1 - http://vavr.io)
- (COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0) JavaBeans(TM) Activation Framework (javax.activation:activation:1.1.1 - http://java.sun.com/javase/technologies/desktop/javabeans/jaf/index.jsp)
- (Eclipse Public License 1.0) JUnit (junit:junit:4.13.1 - http://junit.org)
- (Unknown license) "Java Concurrency in Practice" book annotations (net.jcip:jcip-annotations:1.0 - http://jcip.net/)
- (Apache License, Version 2.0) Apache Commons Lang (org.apache.commons:commons-lang3:3.9 - http://commons.apache.org/proper/commons-lang/)
- (Apache License, Version 2.0) Apache HttpClient (org.apache.httpcomponents:httpclient:4.5.2 - http://hc.apache.org/httpcomponents-client)
- (Apache License, Version 2.0) Apache HttpCore (org.apache.httpcomponents:httpcore:4.4.4 - http://hc.apache.org/httpcomponents-core-ga)
- (Apache License, Version 2.0) Apache Log4j API (org.apache.logging.log4j:log4j-api:2.14.0 - https://logging.apache.org/log4j/2.x/log4j-api/)
- (Apache License, Version 2.0) Apache Log4j Core (org.apache.logging.log4j:log4j-core:2.14.0 - https://logging.apache.org/log4j/2.x/log4j-core/)
- (Bouncy Castle Licence) Bouncy Castle Provider (org.bouncycastle:bcprov-jdk15on:1.59 - http://www.bouncycastle.org/java.html)
- (New BSD License) Hamcrest Core (org.hamcrest:hamcrest-core:1.3 - https://github.com/hamcrest/JavaHamcrest/hamcrest-core)
- (Apache License, Version 2.0) Javacord (org.javacord:javacord:3.1.2 - https://www.javacord.org)
- (Apache License, Version 2.0) Javacord (api) (org.javacord:javacord-api:3.1.2 - https://www.javacord.org)
- (Apache License, Version 2.0) Javacord (core) (org.javacord:javacord-core:3.1.2 - https://www.javacord.org)
- (Apache License, version 2.0) JBoss Logging 3 (org.jboss.logging:jboss-logging:3.3.0.Final - http://www.jboss.org)
- (Apache License, Version 2.0) RESTEasy JAX-RS Client (org.jboss.resteasy:resteasy-client:3.1.3.Final - http://rest-easy.org/resteasy-client)
- (Apache License, Version 2.0) RESTEasy JAX-RS Implementation (org.jboss.resteasy:resteasy-jaxrs:3.1.3.Final - http://rest-easy.org/resteasy-jaxrs)
- (Apache License, Version 2.0) RESTEasy JAX-RS services (org.jboss.resteasy:resteasy-jaxrs-services:3.1.3.Final - http://rest-easy.org/resteasy-jaxrs-services)
- (CDDL or GPLv2 with exceptions) Common Annotations 1.2 API (org.jboss.spec.javax.annotation:jboss-annotations-api_1.2_spec:1.0.0.Final - http://www.jboss.org/jboss-annotations-api_1.2_spec)
- (Common Development and Distribution License) (GNU General Public License, Version 2 with the Classpath Exception) JAX-RS 2.0: The Java(TM) API for RESTful Web Services (org.jboss.spec.javax.ws.rs:jboss-jaxrs-api_2.0_spec:1.0.1.Beta1 - http://www.jboss.org/jboss-jaxrs-api_2.0_spec)
- (MIT License) SLF4J API Module (org.slf4j:slf4j-api:1.7.25 - http://www.slf4j.org)
利用しているサービス
- ゲーム設定型ダイスボット「ボーンズ&カーズ」
- どどんとふを初めとする多くのオンセツールで採用されているダイスボット。略称は BCDice。修正BSDライセンスでライセンスされています。
- BCDice-API
- BCDice に HTTP による API を付与するラッパ。MIT ライセンスでライセンスされています。
- Discord
- ボイスチャットアプリ。パソコンからでも携帯からでも利用可能。
本アプリのライセンス
このアプリ (ソースコードなどを含む) は GPLv3 でライセンスします。
ソースコードはhttps://github.com/Shunshun94/discord-bcdicebotから入手可能です。
Q&A
質問・バグ報告はどこに
@Shunshun94 ないしは github の issues に。
どんな出力が出たのか、出力をコピペして頂けると調査が捗ります。
ダイスを振った時にメンションしてほしいんだけど
環境変数 BCDICE_MENTION_MODE
になんらかの値を入れた状態で bot を起動してください
Version 2? Version 1 との差異として気を付けるべき点は何?
以下について変更が入っています。
- 古いオリジナルダイスボット表で利用できた help のフォーマットが利用できなくなります。help の際は表の内容を全部出力します
- BCDice-API v2 の API が有効でないサーバでは利用できません
Version 1 を使いたいのだけれども
こちらからダウンロードいただけます。ただし今後更新はされません
なんで Java なの。Ruby とか○○とかじゃないの
一般ユーザの PC に Ruby や○○の実行環境が導入されているとは思えなかった
じゃあ単体実行できるバイナリでいいじゃん
Mac ユーザやら Linux ユーザやらごとにバイナリを作るのが面倒だった。 Linux はともかく Mac ユーザはいる気がしたから
ダイスを振るコマンド以外を入力すると [ERROR][500] ~ って出る。設定は合っているはずなのに
start.bat の IGNORE_ERROR=0 の 0 を 1 と書き入れてみてください。治るかもしれません
管理用のパスワードはどこ?
環境変数BCDICE_PASSWORD
の値が使われます。
環境変数を指定していない場合は起動直後に Admin Password: SGO7C0XYtBJouE75
みたいな文字列がでます。この英数字ランダム16桁の文字列がパスワードです。起動するたびに変わるので注意してください
謝辞
お世話になった方々
BCDice を作成・公開してくださったFacelessさんと、
Ruby 移植をしてくださったたいたい竹流さん。
さらにメンテを引き継いでくださっている酒田 シンジさん。
そもそも、BCDice が無ければこのアプリは着想すらありませんでした。
BCDice が多機能である点、2017年現在、国内オンラインセッションツールのデファクトスタンダードであるどどんとふが採用しているダイスボットであるため、
国内におけるダイスボットのデファクトスタンダードが BCDice となっていたことが実装の必要を感じたそもそもの理由でした。
BCDice-API を実装・公開してくださった酒田 シンジさん。
BCDice-API が無ければ本アプリの実装は気が遠くなるものだったに違いありません。
発表前の動作確認に付き合ってくださったかし*さんと離凛さん。
色々な想定漏れについて指摘していただき、公開前にアプリが大幅に改善されました。
関連アプリの紹介
Nanasu さんが作ってくださったBCDiscord for Browser のコマンドは本アプリの物を参考にしてくださいました。
ブラウザのみで動くため、大変に便利です。
更新履歴
- v2.2.0
- Heroku 上で動かすための設定ファイル Procfile を追加しました。ファイルを共有してくださった yoshi さん、ありがとうございます!(詳細)
- Bot が登録されているサーバの情報を取得できるようにしました
- オリジナルダイスボット表に関する問題をいくらか修正しました
- v2.1.0
- 環境変数
BCDICE_MENTION_MODE
に何らかの値が入っている場合、ダイスを振った際に振った人にメンションを付けて結果を表示するように変更
- v2.0.2
- bcdice help SYSTEM_NAME がうまく動かない問題を報告いただき、修正しました。h-mikisato さん、ありがとうございます!(詳細)
- システム設定のインポート・エクスポートの出力を修正しました
- オリジナルダイスボット表の繰り返しコマンドについて出力を修正しました
- v2.0.1
- オリジナルダイスボット表に関する問題を修正しました
- v2.0.0
- BCDice-API 2.0 に対応しました
- コマンド中に全角スペースが含まれている場合、半角スペースとして扱うようにしました
- v1.14.5
- このファイルのタイポを修正頂きました(詳細)。yoshi さん、ありがとうございます!
- v1.14.4
- 利用しているライブラリを更新しました
- v1.14.3
- 利用しているライブラリを更新しました
- アプリ内で使っている用語のいくつかを修正しました
- v1.14.2
- ヘルプとマニュアルの修正を実施しました
- v1.14.1
- 利用する予定の BCDice API サーバを一覧する機能を追加しました
- 利用する予定の BCDice API サーバから特定のサーバを削除する機能を追加しました
- 挙動を安定させるために若干修正を加えました
- 複数回振る時の挙動に関するバグを修正しました
- v1.14
- オリジナルのダイスボット表にヘルプテキストを追加できるようにしました
- 複数回ロールする機能で発生していたいくつかのバグを修正しました
- Discord の API 仕様変更の予定に追随しました
- v1.13.1
- マニュアルを少し修正
- v1.13
- ダイスを一度に複数回振る機能を追加しました
- BCDice API サーバが不調の際に別の BCDice API サーバに自動で切り替える機能を追加しました
- ダイスボットの種類を指定していない際に利用されるデフォルトのダイスボットを指定する機能を追加しました
- v1.12.2
- システムの名称にスペースが入っている場合にダイスボットの設定やコマンドの参照ができない問題を修正しました
- v1.12.1
- ダイスを振る際に接頭語を必要とする設定にしている際、オリジナルのダイスボットについて接頭語の設定が有効になってなかった問題を修正しました
- v1.12
- BCDice-API へのリクエスト送信頻度を下げる機能を追加しました
- 管理者がオリジナルのダイスボット表を追加できる機能を追加しました
- v1.11
- たまに BCDice-API へのリクエストが上手くいかない問題に対して対処しました
- パスワードを指定する機能を追加しました
- v1.10
- Linux/macOS 環境向けの起動スクリプトを追加。スクリプトを共有くださったおちゃさん、ありがとうございます!
- v1.9
- ダイスボットのスペルが間違えている時に警告が出ない問題を解消しました
- v1.8.1(2019/07/24)
- 本ドキュメントの軽微な修正を実施しました
- v1.8(2019/07/23)
- ダイスコマンドに関するバグを修正しました (詳細)。
- 管理用コマンドとして BCDice-API の接続先を変更する機能を追加しました
- 管理用コマンドとして全部屋に設定されたダイスボット一覧を取得する機能を追加しました
- 管理用コマンドとして全部屋にダイスボットを設定する機能を追加しました
- v1.7(2019/06/10)
- bcdice list でダイスボットの一覧が表示されないことがある問題を修正しました
- v1.6(2018/11/11)
- 一部のエラーを無視する機能を追加しました。詳しくは上述の
ダイスを振るコマンド以外を入力すると [ERROR][500] ~ って出る。設定は合っているはずなのに
を参照してください
- 設定用コマンドを一部修正しました
- v1.5(2018/03/24)
- ダイスコマンドに関するバグを修正しました (詳細)。問題の指摘と修正手法の共有をしてくださったcardinal さん、ありがとうございます!
- v1.4(2017/10/07)
- 利用しているライブラリ起因の問題に対してライブラリをバージョンアップして対応しました。問題の指摘をくださったシーラさん、ありがとうございます!
- アプリ終了後に待機するように start.bat を変更しました。ログの収集が容易になりました
- v1.3(2017/07/13)
- Channel 毎に異なるダイスボットを利用できるように変更しました。特に設定していない場合は general のものを利用しています
- v1.2(2017/07/06)
- BCDice-API v0.4.0 に対応しました。問題の指摘をくださった酒田 シンジさん、ありがとうございます!
- v1.1.1(2017/06/30)
- 本ドキュメントの権利的な問題に対応しました
- v1.1(2017/06/30)
- いくらかの内部的な問題を修正。機能への変更はありません
- v1.0 (2017/06/26)
- 公開
BCDice-API サーバを自分で構築するのは一定の専門知識が必要です。 独自のダイスボットを追加するのでなければ、https://api-status.bcdice.org/ に記載されている公開サーバを利用する方が良いでしょう。 各公開サーバには利用ルールがあるため、利用前に事前にご確認ください。
また、中級者向けに Heroku を用いての自分用 BCDice-API サーバの設置手順も共有されています。
https://github.com/ysakasin/bcdice-api/blob/master/docs/heroku.md