discord-bcdicebot

目次

目次
概要
必要なもの
 Java 8 ないしそれ以降の実行環境
 BCDice-API サーバ
サーバに導入する手順
 概要
 詳細1. ダイスボットを登録し、サーバに導入する
 詳細2. start.bat または start.sh を編集する
 詳細3. start.bat または start.sh を実行する
 なんか動かない……
利用する
 ダイスを振る
 設定を変更する
 管理コマンドを使う
 スラッシュコマンドについて
中級者以上向け:heroku を使って動かす手順
連絡先
 バグ報告など
 寄付先
ライセンス
 使用しているライブラリ
 利用しているサービス
 本アプリのライセンス
Q&A
 質問・バグ報告はどこに
 ダイスを振った時にメンションしてほしいんだけど
 ダイスを振るコマンド以外を入力すると [ERROR][500] ~ って出る。設定は合っているはずなのに
 管理用のパスワードはどこ?
 スラッシュコマンドを有効にしてダイスボットを起動したのだけれどもスラッシュコマンドがサジェストされない
 Version 2? Version 1 との差異として気を付けるべき点は何?
 Version 1 を使いたいのだけれども
 なんで Java なの。Ruby とか○○とかじゃないの
 じゃあ単体実行できるバイナリでいいじゃん
謝辞
 お世話になった方々
 関連アプリの紹介
更新履歴

概要

Discord で BCDice を使うための bot です。各サーバに対して、ユーザが導入して利用します。

DOWNLOAD

必要なもの

このアプリは Discord のチャットに参加するユーザのうち、1人の環境で動かす必要があります。動かす人には以下の準備が求められます

Java 8 ないしそれ以降の実行環境

Java 実行環境 のインストール方法は Javaをインストールするには をご覧ください。

BCDice-API サーバ

BCDice-API が動作しているサーバを用意してください。ローカルでも構いませんし、貸してくれる人から借りてもかまいません。

BCDice-API サーバを自分で構築するのは一定の専門知識が必要です。 独自のダイスボットを追加するのでなければ、https://api-status.bcdice.org/ に記載されている公開サーバを利用する方が良いでしょう。 各公開サーバには利用ルールがあるため、利用前に事前にご確認ください。

また、中級者向けに Heroku を用いての自分用 BCDice-API サーバの設置手順も共有されています。
https://github.com/ysakasin/bcdice-api/blob/master/docs/heroku.md

サーバに導入する手順

導入手順を画像付きで分かりやすくまとめた記事をえいむさんが書いてくださっています。
必要に応じてこちらも読むことをおすすめします。
https://aimsot.net/discord_dicebot/

概要

  1. Discord の開発者ページからダイスボットを作成しサーバに導入する
  2. DOWNLOAD から Discord-Bcdicebot をダウンロードし、start.bat ないし start.sh に Bot の Token 情報と BCDice-API の情報を記入する
  3. start.bat ないし start.sh を実行する

詳細1. ダイスボットを登録し、サーバに導入する

Discord に新規の Bot を作成します。サーバに導入するため、サーバ管理者がこれを実行することになるでしょう。

  1. 開発者ページ にアクセスし、画面右上の New Application をクリックします
  2. 名前とアイコンを設定し、Discord Application を作成します
  3. 名前とアイコンの下にある APPLICATION ID の数字をメモします
  4. 画面左側のメニューから Bot を選択し、Add Bot と書かれたボタンをクリックし、このダイスボット用のユーザを作成します
  5. Bot の画面中にある MESSAGE CONTENT INTENT を ON にします
    MESSAGE CONTENT INTENTの設定はスラッシュコマンドでしか利用しない予定であれば不要です。
    通常のテキストチャットで利用したい場合は必要となります。
  6. Bot の Username の下に "Token:click to reveal" というのがあるのでクリックし、出てくるランダムな文字列をメモします。この文字列は他の人に教えないこと
    この文字列は NDA0MgAIC0QK18lU0dxMt99F.HuWAIt.Nh9OTLbjxdMp3pcmw3Lsqd4aQlb のような形式の値となります(この値はダミーです)。
    General Information 記載の d70963bg6e4df564f3648c87c514f15bef8ce3b38af1156800bcc3395c062f80 のような値ではありません。
  7. 次の URL にアクセスします
    https://discordapp.com/oauth2/authorize?client_id=[Client Id の数字]&scope=bot&permissions=0
  8. アクセスした画面から Bot を導入できるので、入れたいサーバに Bot を導入します

詳細2. start.bat または start.sh を編集する

DOWNLOAD から Discord-Bcdicebot をダウンロードし、解凍します。
その上で同梱されている start.bat を以下のように編集します(Linux/macOS を使っている方は以下を参考に start.sh を編集してください)。

@echo off
cd /d %~dp0

set DISCORD_BOT_TOKEN=詳細1.の5で得たランダムな文字列
set BCDICE_API_URL=BCDice-APIサーバのURL
set IGNORE_ERROR=
set BCDICE_PASSWORD=管理用のパスワード。ここに入れた文字列がパスワードとして設定される
set BCDICE_API_SECONDARY=予備のBCDice-APIサーバのURL
REM set BCDICE_DEFAULT_SYSTEM=DiceBot
REM set BCDICE_MENTION_MODE=1
REM set BCDICE_RESULT_DISPLAY_FORMAT=V1
REM set BCDICE_SLASH_PREFIX=bcdice
REM set BCDICE_SLASH_SHORT_PREFIX=br
REM set BCDICE_STANDARD_INPUT_DISABLED=disabled
REM set BCDICE_SLASH_TABLE_SUGGESTION_DISABLED=disabled

java -jar discord-bcdicebot.jar %DISCORD_BOT_TOKEN% %BCDICE_API_URL% %IGNORE_ERROR%
pause
BCDICE_PASSWORDBCDICE_API_SECONDARY の行の先頭には 編集を始めた時点では REM という文字列があるのでこれは削除してください。
なお、start.sh を編集する際は REM ではなく # を消すと上手くいきます

BCDICE_API_URLBCDICE_API_SECONDARY の右に入力する値はhttps://api-status.bcdice.org/ に記載されている公開サーバを利用する方が良いでしょう。 各公開サーバには利用ルールがあるため、利用前に事前にご確認ください。

各パラメータは以下のような意味を持ちます。

DISCORD_BOT_TOKEN 必須です。Discord の Bot アカウントに接続するための情報です
BCDICE_API_URL 必須です。ダイスを振るための BCDice-API サーバの URL です
IGNORE_ERROR ダイスを振るコマンド以外を入力した場合に BCDice-API サーバが 500 エラーを返す場合にそれを無視するか否かを設定します。これの値を1にすることでエラーを無視するようになります
BCDICE_PASSWORD 管理用パスワードです。入力しなかった場合、起動のたびにランダムな値がパスワードとして設定されます
BCDICE_API_SECONDARY BCDICE_API_URL で設定した BCDice-API サーバが何らかの都合で使えない場合に利用される代替のサーバの URL です
BCDICE_DEFAULT_SYSTEM 部屋ごとにシステムを設定していない場合に使われるシステムです。設定しない場合は DiceBot が使われます。先頭の REM ないし # を削除しなければ有効になりません
BCDICE_MENTION_MODE ダイスを振った際の結果に振った人へのメンションするか否かを設定します。これの値を1にすることでメンションするようになります。先頭の REM ないし # を削除しなければ有効になりません
BCDICE_RESULT_DISPLAY_FORMAT ダイスを振った結果の表示を設定します。これの値を V1 にすることで旧表示に戻し、ダイスの結果にシステム名も記載されます。先頭の REM ないし # を削除しなければ有効になりません
BCDICE_SLASH_PREFIX スラッシュコマンドを有効にします。ここに入力された値がスラッシュコマンドの接頭語となります。先頭の REM ないし # を削除しなければ有効になりません
BCDICE_SLASH_SHORT_PREFIX ダイスを振る場合に用いるスラッシュコマンドの短縮ワードを設定します。スラッシュコマンドが有効な場合にのみ有効です。入力しなかった場合、br が接頭語に設定されます。先頭の REM ないし # を削除しなければ有効になりません
BCDICE_STANDARD_INPUT_DISABLED この値に何らかの文字列が入っている場合、スラッシュコマンド以外の手段で設定やダイスロールを行うことができなくなります。先頭の REM ないし # を削除しなければ有効になりません
BCDICE_SLASH_TABLE_SUGGESTION_DISABLED この値に何らかの文字列が入っている場合、スラッシュコマンドを用いた際のオリジナル表のサジェストが機能しません

詳細3. start.bat または start.sh を実行する

先に編集した start.bat をダブルクリックすることでダイスボットが起動します。黒い背景に白い文字が出ているウィンドウが表示され、そこにダイスボットの実行ログが表示されます。

ダイスボットを終了する時は表示されているウィンドウを消すか、キーボードの Ctrl+C を押してください。

なんか動かない……

Windows 環境の方は同梱してある validate.bat をダブルクリックすることで何が問題なのか確認するツールが動作します。 それでもわからない場合は validate.bat の結果を後述の "質問・バグ報告はどこに" 記載の連絡先に送ってください。

利用する

利用手順を画像付きで分かりやすくまとめた記事をえいむさんが書いてくださっています。
必要に応じてこちらも読むことをおすすめします。
https://aimsot.net/discord_dicebot02/

ダイスを振る

BCDICE_STANDARD_INPUT_DISABLEDが設定されていない場合、
チャットに BCDice のコマンドを書き込めばダイスが振られます。
例えば 2d6 等と書き込めばサイコロを2つ振った合計値が得られます。
どのようなコマンドが利用できるのかは BCDice コマンドリストをご参照ください。

BCDice にはない独自の振り方として、[]でカンマ区切りのリストを与えるとそのリストのそれぞれについてダイスを振ることができます。
例えば[こぶた,たぬき,きつね,ねこ] 2d6 とすることでこぶた、たぬき、きつね、ねこのそれぞれについて 2d6 を振ることが可能です。

BCDICE_SLASH_PREFIXが有効な場合はスラッシュコマンドでダイスを振る際に同様の記法を用いることが可能です。
例えば、BCDICE_SLASH_PREFIXの値がbcdiceならば
/bcdice roll 2d6/bcdice roll [こぶた,たぬき,きつね,ねこ] 2d6等とすればダイスを振ることが可能です。

設定を変更する

BCDICE_STANDARD_INPUT_DISABLEDが設定されていない場合、
以下のような設定をチャットに書き込むことで実施できます。

bcdice list 利用できるダイスボットのシステムを一覧します -
bcdice set [利用するシステムの名前] そのテキストチャンネルで利用するダイスボットのシステムを指定します。この設定はテキストチャンネル毎に保持されます。利用できるシステムはbcdice listでご確認ください bcdice set SwordWorld2.5
ダイスボットの設定をソードワールド2.5にする
bcdice help [利用するシステムの名前] そのダイスボットのシステムのコマンドに関するヘルプを表示します。利用できるシステムはbcdice listでご確認ください bcdice help SwordWorld2.5
ソードワールド2.5のダイスボットで何をできるのか確認する
bcdice status 現在利用しているダイスサーバと、このコマンドが打たれたテキストチャンネルで利用されているダイスボットのシステムを出力します -
bcdice help discord-bcdicebot 自体のヘルプを呼び出します -

例えば CoC 7版のダイスボットを使いたい時は使いたいテキストチャンネルでbcdice set Cthulhu7thと入力し、ダイスボットのシステムを CoC 7版のものに設定します。
その上でCC<=25 【目星】等と書き込めば CoC 7版の判定ができます。

set コマンドを実行するとstart.batないしstart.shと同じディレクトリにあるBCDiceConfigurationディレクトリ内のファイルに どの部屋がどのシステムを使っているのかが保存されます。 次の起動時は保存された情報に基づいて部屋ごとのシステムを設定します

BCDICE_SLASH_PREFIXが有効な場合はスラッシュコマンドでダイスを振る際に同様の記法を用いることが可能です。
詳細はスラッシュコマンドの説明をご確認ください。

管理コマンドを使う

BCDICE_STANDARD_INPUT_DISABLEDが設定されていない場合、
以下のような設定をチャットに書き込むことで実施できます。
パスワードは start.bat ないし start.sh で設定した BCDICE_PASSWORD の値を用いてください。

bcdice admin [パスワード] listServer discord-bcdicebot が参照する BCDice-API サーバの一覧を表示します。1個以上のサーバの URL が出力されます。 もし、その時点で利用している BCDice-API サーバが利用できなかった場合、一覧に表示された別のサーバを discord-bcdicebot は利用します bcdice admin myPassw0rd listServer
出力例
https://bcdice.onlinesession.app/
https://bcdice.trpg.net/
bcdice admin [パスワード] setServer [BCDice-APIサーバのURL] discord-bcdicebot が利用する BCDice-API サーバを変更します。 discord-bcdicebot が参照する BCDice-API サーバの一覧に変更後のサーバがなかった場合、変更後のサーバを一覧に追加します bcdice admin myPassw0rd setServer https://bcdice.onlinesession.app
bcdice admin [パスワード] removeServer [BCDice-APIサーバのURL] discord-bcdicebot が参照する BCDice-API サーバの一覧からサーバを削除します。 現在使っているサーバを削除した場合、一覧に存在する別のサーバを利用するように設定は変更されます bcdice admin myPassw0rd removeServer https://bcdice.onlinesession.app
bcdice admin [パスワード] export 全テキストチャンネルについてどのダイスボットのシステムを利用しているのか出力します bcdice admin myPassw0rd export
出力例
Room-System List
655334231928733699:SwordWorld2.5
768400929514061826:SwordWorld2.0
665445513117564962:SwordWorld2.5
643025877055176707:DoubleCross
general:DiceBot
		
bcdice admin [パスワード] import 複数のテキストチャンネルについてどのダイスボットのシステムを利用するのかを設定します。export の出力結果をそのまま使うことができます。
bcdice admin myPassw0rd import
655334231928733699:SwordWorld2.5
768400929514061826:SwordWorld2.0
665445513117564962:SwordWorld2.5
643025877055176707:DoubleCross
bcdice admin [パスワード] updateDiceRollPreFix テキストチャンネルに入力された発言がダイスコマンドであるか否かのチェックを行うための情報を更新します。BCDice-API サーバが更新された直後などに使用することで最新のダイスコマンドを利用可能にすることができます bcdice admin myPassw0rd updateDiceRollPreFix
bcdice admin [パスワード] suppressroll テキストチャンネルに入力された発言のうち、ダイスコマンドであると思われるものを判断して BCDice-API サーバに送信するように設定します。これがデフォルトの挙動です bcdice admin myPassw0rd suppressroll
bcdice admin [パスワード] suppressroll [/ で始まる文字列] テキストチャンネルに入力された発言のうち、先頭が指定した任意の文字列以外ののみダイスコマンドであると判断して BCDice-API サーバに送信するように設定します bcdice admin myPassw0rd suppressroll /r
bcdice admin [パスワード] listDiceBot 後述するオリジナル表を一覧します bcdice admin myPassw0rd listDiceBot
bcdice admin [パスワード] addDiceBot [追加するオリジナル表の名前] オリジナル表を追加します。詳細は後述します bcdice admin myPassw0rd addDiceBot 言語表
bcdice admin [パスワード] removeDiceBot [削除するオリジナル表の名前] オリジナル表を削除します bcdice admin myPassw0rd removeDiceBot 言語表
bcdice admin [パスワード] refreshSecretDice 3日以上前に振られたシークレットダイスの情報を削除します -
bcdice admin bcdice admin コマンドの discord-bcdicebot 自体のヘルプを呼び出します -
bcdicediscord [パスワード] listServers Bot が登録されているサーバの一覧を出力します -
bcdicediscord [パスワード] listRooms Bot が登録されているサーバに存在するテキストチャンネルの一覧を取得します -
bcdicediscord [パスワード] listRoomIds Bot が登録されているサーバに存在するテキストチャンネルの ID の一覧を取得します -
import コマンドを実行するとstart.batないしstart.shと同じディレクトリにあるBCDiceConfigurationディレクトリ内のファイルに どの部屋がどのシステムを使っているのかが保存されます。 次の起動時は保存された情報に基づいて部屋ごとのシステムを設定します

BCDICE_SLASH_PREFIXが有効な場合はスラッシュコマンドでダイスを振る際に同様の記法を用いることが可能です。
ただし、exportimportsuppressroll はスラッシュコマンドからは利用できません。
詳細はスラッシュコマンドの説明をご確認ください。

オリジナル表の管理

管理者はオリジナル表を追加することもできます。

オリジナル表を追加する場合は Discord にオリジナル表の情報をアップロードし、アップロード時のコメントに次のように記載してください。
bcdice admin [パスワード] addDiceBot [オリジナル表名]
追加した後オリジナル表の名前がチャット上で発言されるとオリジナル表が振られます。

オリジナル表を削除する際は以下のようにしてください。
bcdice admin [パスワード] removeDiceBot [オリジナル表名]
オリジナル表の一覧は次のようにすると確認できます。
bcdice admin [パスワード] listDiceBot

BCDice コマンド形式の表

他のツールと互換性のあるオリジナル表をアップロードすることでそのオリジナル表を利用できます。 記法はオリジナル表 · BCDiceコマンドガイド ないしはdiscord-bcdicebot/originalDiceBots/サンプルダイスボット-夜食表を参照してください。
両者でフォーマットが異なりますが、どちらも利用できます。
また、追加するダイスボット表は UTF-8 で作成されている必要があります。 Windows 付属のメモ帳であれば名前を付けて保存する際に保存ボタンの左に「文字コード」を選択できる箇所があります。ここで UTF-8 を選択した上で保存してください。

アクセスポイント URL 形式の表

アクセスすることで BCDice API のダイス結果互換の値を返すアクセスポイント(例:original_table_sample_result.json)を与えることでもオリジナル表を作成できます。
返り値には最低限 ok text secret の情報が含まれている必要があります。
アップロードするオリジナル表のファイルは1行目にアクセスポイントの URL のみ記載してください(例:original_table_sample_file)。

アクセスポイントにアクセスする際、次の URL に対して GET メソッドでアクセスを実施します。
${与えた URL}?repeat=${回数}&params=${引数}

例えば https://original_table.example.com/access_point がアクセスポイントで、
テキストチャットから次のような入力を実施して該当のオリジナル表を振るとします。
x3 URLのオリジナル表 ぱんだ うさぎ こあら
この場合、次のようにアクセスを実施します。
https://original_table.example.com/access_point?repeat=3&params=ぱんだ%20うさぎ%20こあら

スラッシュコマンドについて

BCDICE_SLASH_PREFIX が有効な場合、Discord のスラッシュコマンド機能を用いてダイスを振ったり設定を実施したりできるようになります。

スラッシュコマンドの使い方

ダイスボット起動後、テキストチャットにスラッシュ(/)を入力すると何ができるのかが表示されます。そちらをご参照ください。

スラッシュコマンドが有効になるには時間がかかります

ダイスボットを起動してから1時間前後待たないとスラッシュコマンドは有効になりません。

ただし、一度 Bot のアプリを起動して導入している各サーバでスラッシュコマンドが有効になれば、次の起動からは起動直後からスラッシュコマンドが利用できます。

admin コマンド及び discord コマンドは管理者しか使えません

admin コマンドと discord コマンドは管理者しか実行できません。 従来パスワードを知っていれば誰でも実行できましたが、スラッシュコマンドにおいては Bot の管理者のみ実行できるように変更されました。

スラッシュコマンドで使えない機能

上述の通り、管理コマンドのexportimportsuppressrollはスラッシュコマンドからは利用できません。

スラッシュコマンドを無効化したい場合

BCDICE_SLASH_PREFIXBCDICE_SLASH_SHORT_PREFIXの値を変えたい場合は再起動が必要です。
しかし、再起動後もスラッシュコマンドの Discord 上でのサジェストは残ってしまいます。
そのため、それらの値を変えたり、Bot を長期に渡って止める場合は止める前に
discord removeslashcommandsのスラッシュコマンドを用いてスラッシュコマンドを削除してください。

中級者以上向け:heroku を使って動かす手順

PaaS サービス heroku を使って discord-bcdicebot を動かすことも可能です。
月額数ドルを払うことで利用できます。詳細はHeroku Pricing のページをご参照ください。

ただし、Git と Heroku を使える必要があり、Heroku については英語で書かれたウェブサイト上での操作が必要となります。

  1. Git を導入します。Git: https://git-scm.com/
  2. Heroku のアカウントを作成します。Heroku: https://www.heroku.com/home
  3. Heroku CLI を導入します。インストールガイド: https://devcenter.heroku.com/articles/heroku-cli
  4. GitHub からソースコードを clone してきます。URL は git@github.com:Shunshun94/discord-bcdicebot.git
  5. clone してきたディレクトリ内で heroku login を実行し、ログインします
  6. clone してきたディレクトリ内で heroku create を実行し、heroku 上に App を作成します
  7. clone してきたディレクトリ内で git push heroku master を実行し、heroku 上にソースコードを push します
  8. clone してきたディレクトリ内で以下を実行し、環境変数を設定します
  9. (必須ではない) 必要に応じて以下の環境変数を設定します。
  10. Heroku の Dashboard から worker を起動します。
    Heroku の Dashboard:https://dashboard.heroku.com/
https://dinosaur-fossil.hatenablog.com/entry/2020/12/23/001818 を参考に記載しています。

連絡先

バグ報告など

Twitter アカウントは@Shunshun94。ないしはリポジトリに issue を追加してください。

寄付先

Amazon のウィッシュリスト

ライセンス

使用しているライブラリ

利用しているサービス

ゲーム設定型ダイスボット「ボーンズ&カーズ」
どどんとふを初めとする多くのオンセツールで採用されているダイスボット。略称は 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 を起動してください

ダイスを振るコマンド以外を入力すると [ERROR][500] ~ って出る。設定は合っているはずなのに

start.bat の IGNORE_ERROR=0 の 0 を 1 と書き入れてみてください。治るかもしれません

管理用のパスワードはどこ?

環境変数BCDICE_PASSWORDの値が使われます。
環境変数を指定していない場合は起動直後に Admin Password: SGO7C0XYtBJouE75 みたいな文字列がでます。この英数字ランダム16桁の文字列がパスワードです。起動するたびに変わるので注意してください

スラッシュコマンドを有効にしてダイスボットを起動したのだけれどもスラッシュコマンドがサジェストされない

初回起動時は使えるようになるまで1時間程度かかります。お待ちください

Version 2? Version 1 との差異として気を付けるべき点は何?

以下について変更が入っています。

Version 1 を使いたいのだけれども

こちらからダウンロードいただけます。ただし今後更新はされません

なんで Java なの。Ruby とか○○とかじゃないの

一般ユーザの PC に Ruby や○○の実行環境が導入されているとは思えなかった

じゃあ単体実行できるバイナリでいいじゃん

Mac ユーザやら Linux ユーザやらごとにバイナリを作るのが面倒だった。 Linux はともかく Mac ユーザはいる気がしたから

謝辞

お世話になった方々

BCDice を作成・公開してくださったFacelessさんと、 Ruby 移植をしてくださったたいたい竹流さん。 さらにメンテを引き継いでくださっている酒田 シンジさん。 そもそも、BCDice が無ければこのアプリは着想すらありませんでした。 BCDice が多機能である点、2017年現在、国内オンラインセッションツールのデファクトスタンダードであるどどんとふが採用しているダイスボットであるため、 国内におけるダイスボットのデファクトスタンダードが BCDice となっていたことが実装の必要を感じたそもそもの理由でした。

BCDice-API を実装・公開してくださった酒田 シンジさん。 BCDice-API が無ければ本アプリの実装は気が遠くなるものだったに違いありません。

発表前の動作確認に付き合ってくださったかし*さんと離凛さん。 色々な想定漏れについて指摘していただき、公開前にアプリが大幅に改善されました。

PR や問題の指摘等をくださった酒田 シンジさんシーラさんcardinalさんおちゃさんyoshi さん水篠 日和さん。(順番は時期順) 頂いた PR やご指摘等に基づいて色々と修正や追加機能、利用しやすくするための措置をとれました。

DiscordでDiceBot(BCDice)を使う方法その1その2を書いてくださった えいむさん。画像つきのかなりわかりやすいガイドを書いて頂き、導入して頂きやすくなりました。

OGP 画像にフリー写真素材ぱくたそ ゾロ目が揃ったサイコロの写真素材(Photo by すしぱく)を用いています。

関連アプリの紹介

Nanasu さんが作ってくださったBCDiscord for Browser のコマンドは本アプリの物を参考にしてくださいました。 ブラウザのみで動くため、大変に便利です。

更新履歴

v2.8.1
URL 形式で設定するオリジナル表のサンプルを追加しました。詳細はオリジナル表の管理をご確認ください
v2.8.0
MESSAGE CONTENT INTENT の状態を validate.bat で確認するように変更しました
オリジナル表をファイル形式だけでなく URL 形式で設定できるようにしました。詳細はオリジナル表の管理をご確認ください
v2.7.5
一部ライブラリを最新版に差し替えました
v2.7.4
ダイスボットの配布方法を変更しました
v2.7.3
ソースコードの一部をメンテナンスしました
v2.7.2
Heroku に関する記述を修正しました。アプリの修正はありません
v2.7.1
Discord の仕様変更に合わせ、導入手順を修正しました。アプリの修正はありません
v2.7.0
スラッシュコマンドからオリジナル表をサジェストするように変更しました。スラッシュコマンドを有効にした場合はデフォルトでサジェストも有効ですが、設定から無効化することも可能です
スラッシュコマンドから特定のユーザがダイスを振れないように設定する機能を追加しました
ダイスを複数回振る時の挙動に関する問題を修正しました
v2.6.5
シークレットダイスについて挙動がおかしかったので修正しました
v2.6.4
一部のコマンドの結果の表示形式を変更しました
v2.6.3
内部の挙動を一部修正しました
v2.6.2
内部の挙動を一部修正しました
v2.6.1
アプリの誤字を修正しました
v2.6.0
スラッシュコマンドに対応しました。ただし、現時点ではスラッシュコマンドはデフォルトでは無効です
各部屋の設定情報を保存するように変更しました。2.6.0にした後、一度 import を実行すれば今後は起動するごとに部屋ごとのシステムの再設定を行う必要はありません
v2.5.7
いくつかのライブラリについて更新しました
v2.5.6
いくつかのライブラリについて更新しました
v2.5.5
いくつかのライブラリについて更新しました
v2.5.4
いくつかのライブラリについて更新しました
v2.5.3
オリジナルダイスボットを複数回振る際の内部の挙動を変更しました
v2.5.2
start.sh を修正しました(詳細)。連絡くださったおちゃさん、ありがとうございます!
v2.5.1
本ドキュメントのタイポを修正しました
v2.5.0
テキストチャットに入力された情報がダイスコマンドか否かのチェックに BCDice が提供している情報を用いるように変更しました
シークレットダイスの挙動について修正しました。古いシークレットダイスの情報を削除できるようにしました
v2.4.0
DiscordでDiceBot(BCDice)を使う方法へのリンクを追加しました。書いてくださったえいむさん、ありがとうございます!
導入手順を全体的に修正しました
validate.bat を追加しました
環境変数 BCDICE_RESULT_DISPLAY_FORMAT の値が V1 の場合、ダイスを振った際にシステム名を付けて結果を表示するように変更
v2.3.0
いくつかのライブラリについて更新
2 NotDiceRollのようなフォーマットの発言を行った際に警告メッセージが暴発する問題に対処しました
v2.2.3
一部のダイスを振った結果の表示が崩れる問題に対処しました
オリジナル表に関する一部挙動を修正しました(詳細)。連絡くださった水篠 日和さん、ありがとうございます!
管理用の部屋一覧を取得するコマンドの挙動を一部修正しました
v2.2.2
自動テストに関連する不備に対処しました(詳細)。連絡くださったおちゃさん、ありがとうございます!
v2.2.1
start.sh の文字コードが変わっていて正しく機能しなかった問題に対処しました(詳細)。連絡くださったおちゃさん、ありがとうございます!
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)
公開