forked from Shunshun94/discord-bcdicebot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
581 lines (535 loc) · 44.2 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>discord-bcdicebot</title>
<style type="text/css">
body > * {
width: 70%;
margin-left:15%;
}
h2 {
border-left: 24px double green;
border-bottom: 4px solid green;
padding-left: 4px;
}
h3 {
border-left: 12px double green;
border-bottom: 2px solid green;
padding-left: 4px;
}
pre {
margin-top:4px;
margin-bottom:4px;
padding-left:20px;
}
td {
padding:4px;
}
.comment {
background-color:#FFFFDD;
padding:8px;
}
.needToEdit {
color:green;
}
</style>
</head>
<body>
<h1>discord-bcdicebot</h1>
<h2>概要</h2>
<p>Discord で BCDice を使うための bot です。各サーバに対して、ユーザが導入して利用します。</p>
<p><a href="https://drive.google.com/file/d/1E7WE1cnk7YLtmhDEbuI3P6hQpCYzFUUb/view?usp=sharing">DOWNLOAD</a></p>
<h2>必要なもの</h2>
<p>このアプリは Discord のチャットに参加するユーザのうち、1人の環境で動かす必要があります。動かす人には以下の準備が求められます</p>
<h3>Java 8 ないしそれ以降の実行環境</h3>
<p>Java 実行環境 のインストール方法は <a href="https://www.java.com/ja/download/help/download_options.xml">Javaをインストールするには</a> をご覧ください。</p>
<h3>BCDice-API サーバ</h3>
<p><a href="https://github.com/NKMR6194/bcdice-api">BCDice-API</a> が動作しているサーバを用意してください。ローカルでも構いませんし、貸してくれる人から借りてもかまいません。</p>
<div class="comment">
<p>BCDice-API サーバを自分で構築するのは一定の専門知識が必要です。
独自のダイスボットを追加するのでなければ、<a href="https://api-status.bcdice.org/" target="_blank">https://api-status.bcdice.org/</a> に記載されている公開サーバを利用する方が良いでしょう。
各公開サーバには利用ルールがあるため、利用前に事前にご確認ください。</p>
<p>また、中級者向けに Heroku を用いての自分用 BCDice-API サーバの設置手順も共有されています。<br/><a href="https://github.com/ysakasin/bcdice-api/blob/master/docs/heroku.md">https://github.com/ysakasin/bcdice-api/blob/master/docs/heroku.md</a></p>
</div>
<h2>サーバに導入する手順</h2>
<div class="comment">
<p>導入手順を画像付きで分かりやすくまとめた記事を<a href="https://twitter.com/aimsssssot">えいむさん</a>が書いてくださっています。<br/>
必要に応じてこちらも読むことをおすすめします。<br/>
<a href="https://aimsot.net/discord_dicebot/">https://aimsot.net/discord_dicebot/</a></p>
</div>
<h3>概要</h3>
<ol>
<li>Discord の<a href="https://discordapp.com/developers/applications/me">開発者ページ</a>からダイスボットを作成しサーバに導入する</li>
<li><a href="https://drive.google.com/file/d/1E7WE1cnk7YLtmhDEbuI3P6hQpCYzFUUb/view?usp=sharing">DOWNLOAD</a> から Discord-Bcdicebot をダウンロードし、start.bat ないし start.sh に Bot の Token 情報と BCDice-API の情報を記入する</li>
<li>start.bat ないし start.sh を実行する</li>
</ol>
<h3>詳細1. ダイスボットを登録し、サーバに導入する</h3>
<p>Discord に新規の Bot を作成します。サーバに導入するため、サーバ管理者がこれを実行することになるでしょう。</p>
<ol>
<li><a href="https://discordapp.com/developers/applications/me">開発者ページ</a> にアクセスし、画面右上の New Application をクリックします</li>
<li>名前とアイコンを設定し、Discord Application を作成します</li>
<li>名前とアイコンの下にある APPLICATION ID の数字をメモします</li>
<li>画面左側のメニューから Bot を選択し、Add Bot と書かれたボタンをクリックし、このダイスボット用のユーザを作成します</li>
<li>Bot の Username の下に "Token:click to reveal" というのがあるのでクリックし、出てくるランダムな文字列をメモします。<strong>この文字列は他の人に教えないこと</strong>。
<br/><span style="display:block;" class="comment">この文字列は <code>NDA0MgAIC0QK18lU0dxMt99F.HuWAIt.Nh9OTLbjxdMp3pcmw3Lsqd4aQlb</code> のような形式の値となります(この値はダミーです)。<br/>
General Information 記載の <code>d70963bg6e4df564f3648c87c514f15bef8ce3b38af1156800bcc3395c062f80</code> のような値ではありません。</span></li>
<li>次の URL にアクセスします<br/><strong>https://discordapp.com/oauth2/authorize?client_id=<span class="needToEdit">[Client Id の数字]</span>&scope=bot&permissions=0</strong></li>
<li>アクセスした画面から Bot を導入できるので、入れたいサーバに Bot を導入します</li>
</ol>
<h3>詳細2. start.bat または start.sh を編集する</h3>
<p><a href="https://drive.google.com/file/d/1E7WE1cnk7YLtmhDEbuI3P6hQpCYzFUUb/view?usp=sharing">DOWNLOAD</a> から Discord-Bcdicebot をダウンロードし、解凍します。<br/>
その上で同梱されている start.bat を以下のように編集します(Linux/macOS を使っている方は以下を参考に start.sh を編集してください)。</p>
<pre>@echo off
cd /d %~dp0
set DISCORD_BOT_TOKEN=<strong class="needToEdit">詳細1.の5で得たランダムな文字列</strong>
set BCDICE_API_URL=<strong class="needToEdit">BCDice-APIサーバのURL</strong>
set IGNORE_ERROR=
set BCDICE_PASSWORD=<strong class="needToEdit">管理用のパスワード。ここに入れた文字列がパスワードとして設定される</strong>
set BCDICE_API_SECONDARY=<strong class="needToEdit">予備のBCDice-APIサーバのURL</strong>
REM set BCDICE_DEFAULT_SYSTEM=DiceBot
REM set BCDICE_MENTION_MODE=1
REM set BCDICE_RESULT_DISPLAY_FORMAT=V1
java -jar discord-bcdicebot.jar %DISCORD_BOT_TOKEN% %BCDICE_API_URL% %IGNORE_ERROR%
pause</pre>
<div class="comment"><code>BCDICE_PASSWORD</code> と <code>BCDICE_API_SECONDARY</code> の行の先頭には
編集を始めた時点では REM という文字列があるのでこれは削除してください。
<br/>なお、start.sh を編集する際は REM ではなく # を消すと上手くいきます</div>
<p><code>BCDICE_API_URL</code> と <code>BCDICE_API_SECONDARY</code> の右に入力する値は<a href="https://api-status.bcdice.org/" target="_blank">https://api-status.bcdice.org/</a> に記載されている公開サーバを利用する方が良いでしょう。
各公開サーバには利用ルールがあるため、利用前に事前にご確認ください。</p>
<div class="comment">
<p>各パラメータは以下のような意味を持ちます。</p>
<table border="1">
<tr>
<th>DISCORD_BOT_TOKEN</th>
<td>必須です。Discord の Bot アカウントに接続するための情報です</td>
</tr>
<tr>
<th>BCDICE_API_URL</th>
<td>必須です。ダイスを振るための BCDice-API サーバの URL です</td>
</tr>
<tr>
<th>IGNORE_ERROR</th>
<td>ダイスを振るコマンド以外を入力した場合に BCDice-API サーバが 500 エラーを返す場合にそれを無視するか否かを設定します。これの値を1にすることでエラーを無視するようになります</td>
</tr>
<tr>
<th>BCDICE_PASSWORD</th>
<td>管理用パスワードです。入力しなかった場合、起動のたびにランダムな値がパスワードとして設定されます</td>
</tr>
<tr>
<th>BCDICE_API_SECONDARY</th>
<td>BCDICE_API_URL で設定した BCDice-API サーバが何らかの都合で使えない場合に利用される代替のサーバの URL です</td>
</tr>
<tr>
<th>BCDICE_DEFAULT_SYSTEM</th>
<td>部屋ごとにシステムを設定していない場合に使われるシステムです。設定しない場合は DiceBot が使われます</td>
</tr>
<tr>
<th>BCDICE_MENTION_MODE</th>
<td>ダイスを振った際の結果に振った人へのメンションするか否かを設定します。これの値を1にすることでメンションするようになります</td>
</tr>
<tr>
<th>BCDICE_RESULT_DISPLAY_FORMAT</th>
<td>ダイスを振った結果の表示を設定します。これの値を V1 にすることで旧表示に戻し、ダイスの結果にシステム名も記載されます</td>
</tr>
</table>
</div>
<h3>詳細3. start.bat または start.sh を実行する</h3>
<p>先に編集した start.bat をダブルクリックすることでダイスボットが起動します。黒い背景に白い文字が出ているウィンドウが表示され、そこにダイスボットの実行ログが表示されます。</p>
<p>ダイスボットを終了する時は表示されているウィンドウを消すか、キーボードの Ctrl+C を押してください。</p>
<h3>なんか動かない……</h3>
<p>Windows 環境の方は同梱してある validate.bat をダブルクリックすることで何が問題なのか確認するツールが動作します。
それでもわからない場合は validate.bat の結果を後述の "質問・バグ報告はどこに" 記載の連絡先に送ってください。</p>
<h2>利用する</h2>
<div class="comment">
<p>利用手順を画像付きで分かりやすくまとめた記事を<a href="https://twitter.com/aimsssssot">えいむさん</a>が書いてくださっています。<br/>
必要に応じてこちらも読むことをおすすめします。<br/>
<a href="https://aimsot.net/discord_dicebot02/">https://aimsot.net/discord_dicebot02/</a></p>
</div>
<h3>ダイスを振る</h3>
<p>チャットにただただ BCDice のコマンドを書き込めばダイスが振られます。<br/>
例えば <code>2d6</code> 等と書き込めばサイコロを2つ振った合計値が得られます。<br/>
どのようなコマンドが利用できるのかは <a href="https://docs.bcdice.org/">BCDice コマンドリスト</a>をご参照ください。</p>
<p>BCDice にはない独自の振り方として、<code>[</code>と<code>]</code>でカンマ区切りのリストを与えるとそのリストのそれぞれについてダイスを振ることができます。<br/>
例えば<code>[こぶた,たぬき,きつね,ねこ] 2d6</code> とすることでこぶた、たぬき、きつね、ねこのそれぞれについて 2d6 を振ることが可能です。</p>
<h3>設定を変更する</h3>
<p>以下のような設定をアプリの機能で実施可能です。</p>
<table border="1">
<tr>
<td><code>bcdice list</code></td>
<td>利用できるダイスボットのシステムを一覧します</td>
<td>-</td>
</tr>
<tr>
<td><code>bcdice set [利用するシステムの名前]</code></td>
<td>そのテキストチャンネルで利用するダイスボットのシステムを指定します。この設定はテキストチャンネル毎に保持されます。利用できるシステムは<code>bcdice list</code>でご確認ください</td>
<td><code>bcdice set SwordWorld2.5</code><br/>ダイスボットの設定をソードワールド2.5にする</td>
</tr>
<tr>
<td><code>bcdice help [利用するシステムの名前]</code></td>
<td>そのダイスボットのシステムのコマンドに関するヘルプを表示します。利用できるシステムは<code>bcdice list</code>でご確認ください</td>
<td><code>bcdice help SwordWorld2.5</code><br/>ソードワールド2.5のダイスボットで何をできるのか確認する</td>
</tr>
<tr>
<td><code>bcdice status</code></td>
<td>現在利用しているダイスサーバと、このコマンドが打たれたテキストチャンネルで利用されているダイスボットのシステムを出力します</td>
<td>-</td>
</tr>
<tr>
<td><code>bcdice help</code></td>
<td>discord-bcdicebot 自体のヘルプを呼び出します</td>
<td>-</td>
</tr>
</table>
<p>例えば CoC 7版のダイスボットを使いたい時は使いたいテキストチャンネルで<code>bcdice set Cthulhu7th</code>と入力し、ダイスボットのシステムを CoC 7版のものに設定します。<br/>
その上で<code>CC<=25 【目星】</code>等と書き込めば CoC 7版の判定ができます。</p>
<h3>管理コマンドを使う</h3>
<p>パスワードは <code>start.bat</code> ないし <code>start.sh</code> で設定した <code>BCDICE_PASSWORD</code> の値を用いてください。</p>
<table border="1">
<tr>
<td><code>bcdice admin [パスワード] listServer</code></td>
<td>discord-bcdicebot が参照する BCDice-API サーバの一覧を表示します。1個以上のサーバの URL が出力されます。
もし、その時点で利用している BCDice-API サーバが利用できなかった場合、一覧に表示された別のサーバを discord-bcdicebot は利用します</td>
<td><code>bcdice admin myPassw0rd listServer</code><hr/>出力例<pre>
https://bcdice.onlinesession.app/
https://bcdice.trpg.net/</pre></td>
</tr>
<tr>
<td><code>bcdice admin [パスワード] setServer [BCDice-APIサーバのURL]</code></td>
<td>discord-bcdicebot が利用する BCDice-API サーバを変更します。
discord-bcdicebot が参照する BCDice-API サーバの一覧に変更後のサーバがなかった場合、変更後のサーバを一覧に追加します</td>
<td><code>bcdice admin myPassw0rd setServer https://bcdice.onlinesession.app</code></td>
</tr>
<tr>
<td><code>bcdice admin [パスワード] removeServer [BCDice-APIサーバのURL]</code></td>
<td>discord-bcdicebot が参照する BCDice-API サーバの一覧からサーバを削除します。
現在使っているサーバを削除した場合、一覧に存在する別のサーバを利用するように設定は変更されます</td>
<td><code>bcdice admin myPassw0rd removeServer https://bcdice.onlinesession.app</code></td>
</tr>
<tr>
<td><code>bcdice admin [パスワード] export</code></td>
<td>全テキストチャンネルについてどのダイスボットのシステムを利用しているのか出力します</td>
<td><code>bcdice admin myPassw0rd export</code><hr/>出力例<pre>
Room-System List
655334231928733699:SwordWorld2.5
768400929514061826:SwordWorld2.0
665445513117564962:SwordWorld2.5
643025877055176707:DoubleCross
general:DiceBot
</pre></td>
</tr>
<tr>
<td><code>bcdice admin [パスワード] import</code></td>
<td>複数のテキストチャンネルについてどのダイスボットのシステムを利用するのかを設定します。export の出力結果をそのまま使うことができます。
discord-bcdicebot を再起動した際は全テキストチャンネルのダイスボットのシステムの設定がリセットされるため、import と組み合わせることで原状復帰を容易にできます。
</td>
<td><pre>bcdice admin myPassw0rd import
655334231928733699:SwordWorld2.5
768400929514061826:SwordWorld2.0
665445513117564962:SwordWorld2.5
643025877055176707:DoubleCross</pre></td>
</tr>
<tr>
<td><code>bcdice admin [パスワード] updateDiceRollPreFix</code></td>
<td>テキストチャンネルに入力された発言がダイスコマンドであるか否かのチェックを行うための情報を更新します。BCDice-API サーバが更新された直後などに使用することで最新のダイスコマンドを利用可能にすることができます</td>
<td><code>bcdice admin myPassw0rd updateDiceRollPreFix</code></td>
</tr>
<tr>
<td><code>bcdice admin [パスワード] suppressroll</code></td>
<td>テキストチャンネルに入力された発言のうち、ダイスコマンドであると思われるものを判断して BCDice-API サーバに送信するように設定します。これがデフォルトの挙動です</td>
<td><code>bcdice admin myPassw0rd suppressroll</code></td>
</tr>
<tr>
<td><code>bcdice admin [パスワード] suppressroll [/ で始まる文字列]</code></td>
<td>テキストチャンネルに入力された発言のうち、先頭が指定した任意の文字列以外ののみダイスコマンドであると判断して BCDice-API サーバに送信するように設定します</td>
<td><code>bcdice admin myPassw0rd suppressroll /r</code></td>
</tr>
<tr>
<td><code>bcdice admin [パスワード] listDiceBot</code></td>
<td>後述するオリジナルダイスボット表を一覧します</td>
<td><code>bcdice admin myPassw0rd listDiceBot</code></td>
</tr>
<tr>
<td><code>bcdice admin [パスワード] addDiceBot [追加するオリジナルダイスボット表の名前]</code></td>
<td>オリジナルダイスボット表を追加します。詳細は後述します</td>
<td><code>bcdice admin myPassw0rd addDiceBot 言語表</code></td>
</tr>
<tr>
<td><code>bcdice admin [パスワード] removeDiceBot [削除するオリジナルダイスボット表の名前]</code></td>
<td>オリジナルダイスボット表を削除します</td>
<td><code>bcdice admin myPassw0rd removeDiceBot 言語表</code></td>
</tr>
<tr>
<td><code>bcdice admin [パスワード] refreshSecretDice</code></td>
<td>3日以上前に振られたシークレットダイスの情報を削除します</td>
<td>-</td>
</tr>
<tr>
<td><code>bcdice admin</code></td>
<td>bcdice admin コマンドの discord-bcdicebot 自体のヘルプを呼び出します</td>
<td>-</td>
</tr>
<tr>
<td><code>bcdicediscord [パスワード] listServers</code></td>
<td>Bot が登録されているサーバの一覧を出力します</td>
<td>-</td>
</tr>
<tr>
<td><code>bcdicediscord [パスワード] listRooms</code></td>
<td>Bot が登録されているサーバに存在するテキストチャンネルの一覧を取得します</td>
<td>-</td>
</tr>
<tr>
<td><code>bcdicediscord [パスワード] listRoomIds</code></td>
<td>Bot が登録されているサーバに存在するテキストチャンネルの ID の一覧を取得します</td>
<td>-</td>
</tr>
</table>
<h4>Bot が登録されている Discord サーバの情報を取得する</h4>
<p>Bot が登録されているサーバの一覧を取得するには次のようにします。<br/><code>bcdicediscord [パスワード] listServers</code></p>
<p>Bot が登録されているサーバに存在する部屋の一覧を取得するには次のようにします。情報は<br/><code>bcdicediscord [パスワード] listRooms</code></p>
<p>Bot が登録されているサーバに存在する部屋の ID 一覧を取得するには次のようにします。<br/><code>bcdicediscord [パスワード] listRoomIds</code></p>
<h4>オリジナルダイスボット表の管理</h4>
<p>管理者はオリジナルダイスボット表を追加することもできます。</p>
<p>オリジナルダイスボット表を追加する場合は Discord にオリジナルダイスボット表の情報をアップロードし、アップロード時のコメントに次のように記載してください。<br/>
<code>bcdice admin [パスワード] addDiceBot [オリジナルダイスボット表名]</code><br/>
追加した後オリジナルダイスボット表の名前がチャット上で発言されるとオリジナルダイスボット表が振られます。
この際にアップロードするオリジナルダイスボット表のサンプルは
<a href="https://docs.bcdice.org/original_table.html">オリジナル表 · BCDiceコマンドガイド</a>
ないしは<a href="https://github.com/Shunshun94/discord-bcdicebot/blob/master/originalDiceBots/サンプルダイスボット-夜食表">discord-bcdicebot/originalDiceBots/サンプルダイスボット-夜食表</a>を参照してください。<br/>
両者でフォーマットが異なりますが、どちらも利用できます。<br/>
また、追加するダイスボット表は UTF-8 で作成されている必要があります。
Windows 付属のメモ帳であれば名前を付けて保存する際に保存ボタンの左に「文字コード」を選択できる箇所があります。ここで <code>UTF-8</code> を選択した上で保存してください。
<br/><br/>
オリジナルダイスボット表を削除する際は以下のようにしてください。<br/><code>bcdice admin [パスワード] removeDiceBot [オリジナルダイスボット表名]</code><br/>
オリジナルダイスボット表の一覧は次のようにすると確認できます。<br/><code>bcdice admin [パスワード] listDiceBot</code></p>
<div class="comment">上述の通り、heroku に設置した場合に独自のダイスボット表の名前を正しく取得できないことがあります</div>
<h2>中級者以上向け:heroku を使って動かす手順</h2>
<p>PaaS サービス heroku を使って discord-bcdicebot を動かすことも可能です。<br/>
少なくとも2021年8月時点ではクレジットカード情報を登録することで無料の範囲内でダイスボットを常動させる事が可能です。</p>
<p>ただし、Git と Heroku を使える必要があり、Heroku については英語で書かれたウェブサイト上での操作が必要となります。</p>
<ol>
<li>Git を導入します。Git: <a target="_blank" href="https://git-scm.com/">https://git-scm.com/</a></li>
<li>Heroku のアカウントを作成します。Heroku: <a target="_blank" href="https://www.heroku.com/home">https://www.heroku.com/home</a></li>
<li>Heroku CLI を導入します。インストールガイド: <a target="_blank" href="https://devcenter.heroku.com/articles/heroku-cli">https://devcenter.heroku.com/articles/heroku-cli</a></li>
<li>GitHub からソースコードを clone してきます。URL は <code>[email protected]:Shunshun94/discord-bcdicebot.git</code></li>
<li>clone してきたディレクトリ内で <code>heroku login</code> を実行し、ログインします</li>
<li>clone してきたディレクトリ内で <code>heroku create</code> を実行し、heroku 上に App を作成します</li>
<li>clone してきたディレクトリ内で <code>git push heroku master</code> を実行し、heroku 上にソースコードを push します</li>
<li>clone してきたディレクトリ内で以下を実行し、環境変数を設定します
<ul>
<li>先の 4. でメモした Token を登録します<br/><code>heroku config:set DISCORD_BOT_TOKEN=NDA0MgAIC0QK18lU0dxMt99F.HuWAIt.Nh9OTLbjxdMp3pcmw3Lsqd4aQlb</code> (トークンはダミーです)</li>
<li>利用する BCDice-API サーバの URL を登録します<br/><code>heroku config:set BCDICE_API_URL=http://xxxx.xxxxx.xxxxx.example.com/</code> (URL はダミーです)</li>
<li>管理用パスワードを設定します<br/><code>heroku config:set BCDICE_PASSWORD=MY_PASSWORD</code> (MY_PASSWORD を任意の文字列に書き換えてください)</li>
</ul>
</li>
<li>(必須ではない) 以下の環境変数を設定します。
<ul>
<li>予備の BCDice-API サーバを登録します。<br/><code>heroku config:set BCDICE_API_SECONDARY=http://xxxx.xxxxx.xxxxx.example.com/</code> (URL はダミーです)</li>
<li>どのシステムのダイスボットを使うのか設定していない部屋で利用するダイスボットを設定します。<br/><code>heroku config:set BCDICE_DEFAULT_SYSTEM=DiceBot</code> (DiceBot は任意のシステムに書き換えてください)</li>
<li>ダイスを振った時に振った人にメンションを飛ばすようにします。<br/><code>heroku config:set BCDICE_MENTION_MODE=1</code></li>
<li>ダイスを振った時の結果にシステム名を添えるようにします。<br/><code>heroku config:set BCDICE_RESULT_DISPLAY_FORMAT=V1</code></li>
</ul>
</li>
<li>Heroku の Dashboard から worker を起動します。<br/>Heroku の Dashboard:<a target="_blank" href="https://dashboard.heroku.com/">https://dashboard.heroku.com/</a></li>
</ol>
<div class="comment"><a href="https://dinosaur-fossil.hatenablog.com/entry/2020/12/23/001818">https://dinosaur-fossil.hatenablog.com/entry/2020/12/23/001818</a> を参考に記載しています。<br/>
また、既知の問題として追加したダイスボット表の名前に ascii 文字以外が含まれる場合にダイスボット表の名前を正しく読み込めない問題が存在します。
この方法で設置する場合はダイスボット表を半角英数字・記号で命名してください。</div>
<h2>連絡先</h2>
<h3>バグ報告など</h3>
<p>Twitter アカウントは<a href="https://twitter.com/Shunshun94">@Shunshun94</a>。ないしはリポジトリに issue を追加してください。</p>
<h3>寄付先</h3>
<p><a href="http://amzn.asia/8mNqdKy">Amazon のウィッシュリスト</a></p>
<h2>ライセンス</h2>
<h3>使用しているライブラリ</h3>
<ul>
<li>(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)</li>
<li>(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)</li>
<li>(Apache License, Version 2.0) xsalsa20poly1305 (com.codahale:xsalsa20poly1305:0.10.1 - https://github.com/codahale/xsalsa20poly1305)</li>
<li>(MIT License) minimal-json (com.eclipsesource.minimal-json:minimal-json:0.9.5 - https://github.com/ralfstx/minimal-json)</li>
<li>(The Apache Software License, Version 2.0) Jackson-annotations (com.fasterxml.jackson.core:jackson-annotations:2.9.0 - http://github.com/FasterXML/jackson)</li>
<li>(The Apache Software License, Version 2.0) Jackson-core (com.fasterxml.jackson.core:jackson-core:2.9.3 - https://github.com/FasterXML/jackson-core)</li>
<li>(The Apache Software License, Version 2.0) jackson-databind (com.fasterxml.jackson.core:jackson-databind:2.9.3 - http://github.com/FasterXML/jackson)</li>
<li>(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)</li>
<li>(Apache 2.0) OkHttp Logging Interceptor (com.squareup.okhttp3:logging-interceptor:3.9.1 - https://github.com/square/okhttp/logging-interceptor)</li>
<li>(The Apache Software License, Version 2.0) okhttp (com.squareup.okhttp3:okhttp:4.9.1 - https://square.github.io/okhttp/)</li>
<li>(The Apache Software License, Version 2.0) Okio (com.squareup.okio:okio:2.8.0 - https://github.com/square/okio/)</li>
<li>(The Apache Software License, Version 2.0) Vavr (io.vavr:vavr:0.10.1 - http://vavr.io)</li>
<li>(The Apache Software License, Version 2.0) Vavr Match (io.vavr:vavr-match:0.10.1 - http://vavr.io)</li>
<li>(Eclipse Public License 1.0) JUnit (junit:junit:4.13.1 - http://junit.org)</li>
<li>(Apache License, Version 2.0) Apache Commons Lang (org.apache.commons:commons-lang3:3.9 - http://commons.apache.org/proper/commons-lang/)</li>
<li>(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/)</li>
<li>(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/)</li>
<li>(Bouncy Castle Licence) Bouncy Castle Provider (org.bouncycastle:bcprov-jdk15on:1.59 - http://www.bouncycastle.org/java.html)</li>
<li>(New BSD License) Hamcrest Core (org.hamcrest:hamcrest-core:1.3 - https://github.com/hamcrest/JavaHamcrest/hamcrest-core)</li>
<li>(Apache License, Version 2.0) Javacord (org.javacord:javacord:3.3.2 - https://www.javacord.org)</li>
<li>(Apache License, Version 2.0) Javacord (api) (org.javacord:javacord-api:3.3.2 - https://www.javacord.org)</li>
<li>(Apache License, Version 2.0) Javacord (core) (org.javacord:javacord-core:3.3.2 - https://www.javacord.org)</li>
<li>(The Apache Software License, Version 2.0) IntelliJ IDEA Annotations (org.jetbrains:annotations:13.0 - http://www.jetbrains.org)</li>
<li>(The Apache License, Version 2.0) org.jetbrains.kotlin:kotlin-stdlib (org.jetbrains.kotlin:kotlin-stdlib:1.4.10 - https://kotlinlang.org/)</li>
<li>(The Apache License, Version 2.0) org.jetbrains.kotlin:kotlin-stdlib-common (org.jetbrains.kotlin:kotlin-stdlib-common:1.4.0 - https://kotlinlang.org/)</li>
<li>(MIT License) SLF4J API Module (org.slf4j:slf4j-api:1.7.25 - http://www.slf4j.org)</li>
</ul>
<h3>利用しているサービス</h3>
<dl>
<dt><a href="https://github.com/bcdice/BCDice">ゲーム設定型ダイスボット「ボーンズ&カーズ」</a></dt>
<dd>どどんとふを初めとする多くのオンセツールで採用されているダイスボット。略称は BCDice。修正BSDライセンスでライセンスされています。</dd>
<dt><a href="https://github.com/NKMR6194/bcdice-api">BCDice-API</a></dt>
<dd>BCDice に HTTP による API を付与するラッパ。<a href="https://github.com/NKMR6194/bcdice-api/blob/master/LICENSE">MIT ライセンス</a>でライセンスされています。</dd>
<dt><a href="https://discordapp.com/">Discord</a></dt>
<dd>ボイスチャットアプリ。パソコンからでも携帯からでも利用可能。</dd>
</dl>
<h3>本アプリのライセンス</h3>
<p>このアプリ (ソースコードなどを含む) は <a href="https://www.gnu.org/licenses/gpl-3.0.en.html">GPLv3</a> でライセンスします。<br/>ソースコードは<a href="https://github.com/Shunshun94/discord-bcdicebot">https://github.com/Shunshun94/discord-bcdicebot</a>から入手可能です。</p>
<h2>Q&A</h2>
<h3>質問・バグ報告はどこに</h3>
<p><a href="https://twitter.com/Shunshun94">@Shunshun94</a> ないしは <a href="https://github.com/Shunshun94/discord-bcdicebot/issues">github の issues</a> に。</p>
<p>どんな出力が出たのか、出力をコピペして頂けると調査が捗ります。</p>
<h3>ダイスを振った時にメンションしてほしいんだけど</h3>
<p>環境変数 <code>BCDICE_MENTION_MODE</code> になんらかの値を入れた状態で bot を起動してください</p>
<h3>Version 2? Version 1 との差異として気を付けるべき点は何?</h3>
<p>以下について変更が入っています。</p>
<ul>
<li>古いオリジナルダイスボット表で利用できた help のフォーマットが利用できなくなります。help の際は表の内容を全部出力します</li>
<li>BCDice-API v2 の API が有効でないサーバでは利用できません</li>
</ul>
<h3>Version 1 を使いたいのだけれども</h3>
<p><a href="https://drive.google.com/file/d/0BwmXeRuZhw9oUzBINlJUdEp2eGM/view?usp=sharing">こちら</a>からダウンロードいただけます。ただし今後更新はされません</p>
<h3>なんで Java なの。Ruby とか○○とかじゃないの</h3>
<p>一般ユーザの PC に Ruby や○○の実行環境が導入されているとは思えなかった</p>
<h3>じゃあ単体実行できるバイナリでいいじゃん</h3>
<p>Mac ユーザやら Linux ユーザやらごとにバイナリを作るのが面倒だった。 Linux はともかく Mac ユーザはいる気がしたから</p>
<h3>ダイスを振るコマンド以外を入力すると <strong>[ERROR][500] ~</strong> って出る。設定は合っているはずなのに</h3>
<p>start.bat の <strong>IGNORE_ERROR=0</strong> の 0 を 1 と書き入れてみてください。治るかもしれません</p>
<h3>管理用のパスワードはどこ?</h3>
<p>環境変数<code>BCDICE_PASSWORD</code>の値が使われます。<br/>環境変数を指定していない場合は起動直後に <code>Admin Password: SGO7C0XYtBJouE75</code> みたいな文字列がでます。この英数字ランダム16桁の文字列がパスワードです。起動するたびに変わるので注意してください</p>
<h2>謝辞</h2>
<h3>お世話になった方々</h3>
<p>BCDice を作成・公開してくださった<a href="http://faceless-tools.cocolog-nifty.com/about.html">Faceless</a>さんと、
Ruby 移植をしてくださった<a href="https://twitter.com/torgtaitai">たいたい竹流</a>さん。
さらにメンテを引き継いでくださっている<a href="https://twitter.com/ysakasin">酒田 シンジ</a>さん。
そもそも、BCDice が無ければこのアプリは着想すらありませんでした。
BCDice が多機能である点、2017年現在、国内オンラインセッションツールのデファクトスタンダードであるどどんとふが採用しているダイスボットであるため、
国内におけるダイスボットのデファクトスタンダードが BCDice となっていたことが実装の必要を感じたそもそもの理由でした。</p>
<p>BCDice-API を実装・公開してくださった<a href="https://twitter.com/ysakasin">酒田 シンジ</a>さん。
BCDice-API が無ければ本アプリの実装は気が遠くなるものだったに違いありません。</p>
<p>発表前の動作確認に付き合ってくださった<a href="https://twitter.com/_casi_note">かし*</a>さんと<a href="https://twitter.com/Lillin">離凛</a>さん。
色々な想定漏れについて指摘していただき、公開前にアプリが大幅に改善されました。</p>
<p>PR や問題の指摘等をくださった<a href="https://twitter.com/ysakasin">酒田 シンジさん</a>、<a href="https://github.com/C0ela">シーラさん</a>、
<a href="https://github.com/c-ardinal">cardinalさん</a>、<a href="https://twitter.com/ochaochaocha3">おちゃさん</a>、
<a href="https://github.com/blhsrwznrghfzpr">yoshi さん</a>、<a href="https://twitter.com/Twit_Hiyori">水篠 日和さん</a>。(順番は時期順)
頂いた PR やご指摘等に基づいて色々と修正や追加機能、利用しやすくするための措置をとれました。</p>
<p>DiscordでDiceBot(BCDice)を使う方法<a href="https://aimsot.net/discord_dicebot/">その1</a>・<a href="https://aimsot.net/discord_dicebot02/">その2</a>を書いてくださった
<a href="https://twitter.com/aimsssssot">えいむさん</a>。画像つきのかなりわかりやすいガイドを書いて頂き、導入して頂きやすくなりました。</p>
<h3>関連アプリの紹介</h3>
<p><a href="https://twitter.com/Nanasu7">Nanasu</a> さんが作ってくださった<a href="https://bitbucket.org/Nanasu/bcdiscord-for-browser">BCDiscord for Browser</a> のコマンドは本アプリの物を参考にしてくださいました。
ブラウザのみで動くため、大変に便利です。</p>
<h2>更新履歴</h2>
<dl>
<dt>v2.5.2</dt>
<dd>start.sh を修正しました(<a href="https://github.com/Shunshun94/discord-bcdicebot/pull/121">詳細</a>)。連絡くださった<a href="https://twitter.com/ochaochaocha3">おちゃさん</a>、ありがとうございます!</dd>
<dt>v2.5.1</dt>
<dd>本ドキュメントのタイポを修正しました</dd>
<dt>v2.5.0</dt>
<dd>テキストチャットに入力された情報がダイスコマンドか否かのチェックに BCDice が提供している情報を用いるように変更しました</dd>
<dd>シークレットダイスの挙動について修正しました。古いシークレットダイスの情報を削除できるようにしました</dd>
<dt>v2.4.0</dt>
<dd>DiscordでDiceBot(BCDice)を使う方法へのリンクを追加しました。書いてくださった<a href="https://twitter.com/aimsssssot">えいむさん</a>、ありがとうございます!</dd>
<dd>導入手順を全体的に修正しました</dd>
<dd>validate.bat を追加しました</dd>
<dd>環境変数 <code>BCDICE_RESULT_DISPLAY_FORMAT</code> の値が <code>V1</code> の場合、ダイスを振った際にシステム名を付けて結果を表示するように変更</dd>
<dt>v2.3.0</dt>
<dd>いくつかのライブラリについて更新</dd>
<dd><code>2 NotDiceRoll</code>のようなフォーマットの発言を行った際に警告メッセージが暴発する問題に対処しました</dd>
<dt>v2.2.3</dt>
<dd>一部のダイスを振った結果の表示が崩れる問題に対処しました</dd>
<dd>オリジナルダイスボット表に関する一部挙動を修正しました(<a href="https://github.com/Shunshun94/discord-bcdicebot/issues/91">詳細</a>)。連絡くださった<a href="https://twitter.com/Twit_Hiyori">水篠 日和さん</a>、ありがとうございます!</dd>
<dd>管理用の部屋一覧を取得するコマンドの挙動を一部修正しました</dd>
<dt>v2.2.2</dt>
<dd>自動テストに関連する不備に対処しました(<a href="https://github.com/Shunshun94/discord-bcdicebot/issues/96">詳細</a>)。連絡くださった<a href="https://twitter.com/ochaochaocha3">おちゃさん</a>、ありがとうございます!</dd>
<dt>v2.2.1</dt>
<dd>start.sh の文字コードが変わっていて正しく機能しなかった問題に対処しました(<a href="https://github.com/Shunshun94/discord-bcdicebot/issues/92">詳細</a>)。連絡くださった<a href="https://twitter.com/ochaochaocha3">おちゃさん</a>、ありがとうございます!</dd>
<dt>v2.2.0</dt>
<dd>Heroku 上で動かすための設定ファイル Procfile を追加しました。ファイルを共有してくださった yoshi さん、ありがとうございます!(<a href="https://github.com/Shunshun94/discord-bcdicebot/pull/83">詳細</a>)</dd>
<dd>Bot が登録されているサーバの情報を取得できるようにしました</dd>
<dd>オリジナルダイスボット表に関する問題をいくらか修正しました</dd>
<dt>v2.1.0</dt>
<dd>環境変数 <code>BCDICE_MENTION_MODE</code> に何らかの値が入っている場合、ダイスを振った際に振った人にメンションを付けて結果を表示するように変更</dd>
<dt>v2.0.2</dt>
<dd>bcdice help SYSTEM_NAME がうまく動かない問題を報告いただき、修正しました。h-mikisato さん、ありがとうございます!(<a href="https://github.com/Shunshun94/discord-bcdicebot/issues/79">詳細</a>)</dd>
<dd>システム設定のインポート・エクスポートの出力を修正しました</dd>
<dd>オリジナルダイスボット表の繰り返しコマンドについて出力を修正しました</dd>
<dt>v2.0.1</dt>
<dd>オリジナルダイスボット表に関する問題を修正しました</dd>
<dt>v2.0.0</dt>
<dd>BCDice-API 2.0 に対応しました</dd>
<dd>コマンド中に全角スペースが含まれている場合、半角スペースとして扱うようにしました</dd>
<dt>v1.14.5</dt>
<dd>このファイルのタイポを修正頂きました(<a href="https://github.com/Shunshun94/discord-bcdicebot/pull/72">詳細</a>)。<a href="https://github.com/blhsrwznrghfzpr">yoshi さん</a>、ありがとうございます!</dd>
<dt>v1.14.4</dt>
<dd>利用しているライブラリを更新しました</dd>
<dt>v1.14.3</dt>
<dd>利用しているライブラリを更新しました</dd>
<dd>アプリ内で使っている用語のいくつかを修正しました</dd>
<dt>v1.14.2</dt>
<dd>ヘルプとマニュアルの修正を実施しました</dd>
<dt>v1.14.1</dt>
<dd>利用する予定の BCDice API サーバを一覧する機能を追加しました</dd>
<dd>利用する予定の BCDice API サーバから特定のサーバを削除する機能を追加しました</dd>
<dd>挙動を安定させるために若干修正を加えました</dd>
<dd>複数回振る時の挙動に関するバグを修正しました</dd>
<dt>v1.14</dt>
<dd>オリジナルのダイスボット表にヘルプテキストを追加できるようにしました</dd>
<dd>複数回ロールする機能で発生していたいくつかのバグを修正しました</dd>
<dd>Discord の API 仕様変更の予定に追随しました</dd>
<dt>v1.13.1</dt>
<dd>マニュアルを少し修正</dd>
<dt>v1.13</dt>
<dd>ダイスを一度に複数回振る機能を追加しました</dd>
<dd>BCDice API サーバが不調の際に別の BCDice API サーバに自動で切り替える機能を追加しました</dd>
<dd>ダイスボットの種類を指定していない際に利用されるデフォルトのダイスボットを指定する機能を追加しました</dd>
<dt>v1.12.2</dt>
<dd>システムの名称にスペースが入っている場合にダイスボットの設定やコマンドの参照ができない問題を修正しました</dd>
<dt>v1.12.1</dt>
<dd>ダイスを振る際に接頭語を必要とする設定にしている際、オリジナルのダイスボットについて接頭語の設定が有効になってなかった問題を修正しました</dd>
<dt>v1.12</dt>
<dd>BCDice-API へのリクエスト送信頻度を下げる機能を追加しました</dd>
<dd>管理者がオリジナルのダイスボット表を追加できる機能を追加しました</dd>
<dt>v1.11</dt>
<dd>たまに BCDice-API へのリクエストが上手くいかない問題に対して対処しました</dd>
<dd>パスワードを指定する機能を追加しました</dd>
<dt>v1.10</dt>
<dd>Linux/macOS 環境向けの起動スクリプトを追加。スクリプトを共有くださった<a href="https://twitter.com/ochaochaocha3">おちゃさん</a>、ありがとうございます!</dd>
<dt>v1.9</dt>
<dd>ダイスボットのスペルが間違えている時に警告が出ない問題を解消しました</dd>
<dt>v1.8.1(2019/07/24)</dt>
<dd>本ドキュメントの軽微な修正を実施しました</dd>
<dt>v1.8(2019/07/23)</dt>
<dd>ダイスコマンドに関するバグを修正しました (<a href="https://github.com/Shunshun94/discord-bcdicebot/issues/13">詳細</a>)。</dd>
<dd>管理用コマンドとして BCDice-API の接続先を変更する機能を追加しました</dd>
<dd>管理用コマンドとして全部屋に設定されたダイスボット一覧を取得する機能を追加しました</dd>
<dd>管理用コマンドとして全部屋にダイスボットを設定する機能を追加しました</dd>
<dt>v1.7(2019/06/10)</dt>
<dd>bcdice list でダイスボットの一覧が表示されないことがある問題を修正しました</dd>
<dt>v1.6(2018/11/11)</dt>
<dd>一部のエラーを無視する機能を追加しました。詳しくは上述の <q>ダイスを振るコマンド以外を入力すると <strong>[ERROR][500] ~</strong> って出る。設定は合っているはずなのに</q> を参照してください</dd>
<dd>設定用コマンドを一部修正しました</dd>
<dt>v1.5(2018/03/24)</dt>
<dd>ダイスコマンドに関するバグを修正しました (<a href="https://github.com/Shunshun94/discord-bcdicebot/pull/10">詳細</a>)。問題の指摘と修正手法の共有をしてくださった<a href="https://github.com/c-ardinal">cardinal さん</a>、ありがとうございます!</dd>
<dt>v1.4(2017/10/07)</dt>
<dd>利用しているライブラリ起因の問題に対してライブラリをバージョンアップして対応しました。問題の指摘をくださった<a href="https://github.com/C0ela">シーラさん</a>、ありがとうございます!</dd>
<dd>アプリ終了後に待機するように start.bat を変更しました。ログの収集が容易になりました</dd>
<dt>v1.3(2017/07/13)</dt>
<dd>Channel 毎に異なるダイスボットを利用できるように変更しました。特に設定していない場合は general のものを利用しています</dd>
<dt>v1.2(2017/07/06)</dt>
<dd>BCDice-API v0.4.0 に対応しました。問題の指摘をくださった<a href="https://twitter.com/ysakasin">酒田 シンジさん</a>、ありがとうございます!</dd>
<dt>v1.1.1(2017/06/30)</dt>
<dd>本ドキュメントの権利的な問題に対応しました</dd>
<dt>v1.1(2017/06/30)</dt>
<dd>いくらかの内部的な問題を修正。機能への変更はありません</dd>
<dt>v1.0 (2017/06/26)</dt>
<dd>公開</dd>
</dl>
</body>
</html>