discordだけでTRPGボイスセッション環境を整える

# 2018年1月14日追記
12月中旬頃より[Audio recoder](https://discordbots.org/bot/329331577467174919)が機能停止しています。開発元のウェブサイトもアクセスができず、公式のサポート用discordチャンネルの更新も止まっています。
運営再開を期待したいところですが、望み薄の気がしているので新しい録音用botを調べています。これが良いよというものがありましたら是非お教え頂ければ幸いです。

# 概要

discordだけでTRPGのボイスセッションができる環境を整えました。
ダイスボットと音楽の再生と
録音
ができます。

# 用意するもの
* 自分が管理権限を持っているdiscordサーバー
* 英語だけのページに遭遇しても焦らない心
* 多少複雑な手順でも挫けない心

# 導入するBot
* [Audio recoder](https://discordbots.org/bot/329331577467174919)
* [discord-bcdicebot](https://shunshun94.github.io/discord-bcdicebot/)
* [MusicBotのプルリクエスト#486](https://github.com/Just-Some-Bots/MusicBot/tree/732b2b6e68af0b9f236d9121050cf9e732e14bb6)

# [Audio recoder](https://discordbots.org/bot/329331577467174919)
サーバーへ招待するだけで誰でもボイスチャットを録音できるお手軽シンプルな録音専用bot。

![audio-recorder-invite.png](https://qiita-image-store.s3.amazonaws.com/0/196957/da07d9fe-8ffa-dde7-04d3-245b7619bc2a.png)

InviteをクリックするとサーバーへBotを招待できます。
録音データはmp3形式になって[podframe](https://podframe.com/index.php)というポッドキャストのホスティングサイトで視聴＆DLできます。全体公開ではなくリンクを知っている人にだけ公開のため気軽に使ってOK。

![audio-recorder-podframe.png](https://qiita-image-store.s3.amazonaws.com/0/196957/5fb124da-0631-762a-94c5-c433c0e6e576.png)

視聴ページはこんな感じです。雑談を4時間くらい録音しましたが大丈夫でした。
画面右の↓矢印を押すとmp3形式でDLもできます。

無料。良いのかな無料で。

# [discord-bcdicebot](https://shunshun94.github.io/discord-bcdicebot/)
DiscordでBCDice（どどんとふも使っているダイスロールエンジン）を使うためのbotです。
botの詳しい使い方は上記リンクから本家ページを開いてご確認下さい。
Mac用の起動スクリプトは[こんな感じ](https://qiita.com/C0ela/items/8bbb80d8d3a7a64c5609)のを自作して使っています。

# [MusicBotのプルリクエスト#486](https://github.com/Just-Some-Bots/MusicBot/tree/732b2b6e68af0b9f236d9121050cf9e732e14bb6)
MusicBotはmp3ファイルを再生できる珍しいdiscord用音楽再生botです。Python製。
よくある音楽botはyoutubeなどの動画サイトに投稿されているものしか再生できないのですが、これは個人のサーバーやDropbox等にアップロードしたmp3ファイルも再生できます。
しかし1年前に更新がストップしたMusicBot本体にはリピート機能がありません。

そこで本題。MusicBotにリピート機能を実装した[プルリクエスト#486](https://github.com/Just-Some-Bots/MusicBot/tree/732b2b6e68af0b9f236d9121050cf9e732e14bb6)を使用します。

以下、公式wiki（[Windows](https://github.com/Just-Some-Bots/MusicBot/wiki/Guide-for-Windows)、[MacOSX](https://github.com/Just-Some-Bots/MusicBot/wiki/Guide-for-OSX)）に沿ってインストール方法をざっくり書きます。

## Pythonのインストール
Pythonをインストールします。
バージョンは最新版、少なくとも3系(3.x.x)をどうぞ。パスも通しておいて下さい。

[Pythonをインストールする（for Windows）](https://qiita.com/taiponrock/items/f574dd2cddf8851fb02c)
[Pythonインストール（Mac編）](https://qiita.com/ms-rock/items/6e4498a5963f3d9c4a67)

## MusicBotのダウンロード
[こちら](https://github.com/Just-Some-Bots/MusicBot/tree/732b2b6e68af0b9f236d9121050cf9e732e14bb6)の Clone or download からzipファイルをDLして適当なフォルダに解凍して下さい。

![music-bot-id-486.jpg](https://qiita-image-store.s3.amazonaws.com/0/196957/6f4022cc-49ae-c0a1-7cee-6360f3b2ce2d.jpeg)

cloneする場合は以下

```
$ git clone https://github.com/Just-Some-Bots/MusicBot.git
$ cd MusicBot
$ git fetch origin pull/486/head:music-bot-id-486
$ git checkout music-bot-id-486
```

## MusicBot用botアカウントを作成
discord-bcdicebotと同様に[Discord developers](Discord developers)からbotアカウントを作成してトークンの発行とサーバーへのアカウント登録をします。
詳しくは[こちら](https://github.com/Just-Some-Bots/MusicBot/wiki/FAQ#how-do-i-create-a-bot-account)をどうぞ。

## Discordアカウントの開発者モードを有効化する
ユーザー設定 > テーマ > 開発者モード の項目を有効化します。
後に設定ファイルで必要になるアカウントのIDを見られるようになります。

![discord-developer-mode.jpg](https://qiita-image-store.s3.amazonaws.com/0/196957/c82a3a6a-75e7-43fe-f015-2757ae991766.jpeg)


## options.ini を編集
ダウンロードしてきたファイルの config/example_options.ini をコピーして config/options.ini を作ります。

```Python:options.ini
# 18行目
# Discord developersで発行したbotアカウントのToken
Token = bot_token

# 30行目
# 自分のアカウントを右クリックして「IDをコピー」→ここにペースト
OwnerID = 000000000000000000 

# 38行目
#デフォルトの「!」だとAudio recoderと被るので「*」など別の記号に変える
CommandPrefix = * 

# 47行目
# 特定のテキストチャンネルでのみコマンドを受け付けるようにする場合の設定
# 使う場合は行頭の;を削除してチャンネルのIDをコピーしてここに貼り付け
# スペース区切りで複数チャンネルを設定可能
;BindToChannels = 000000000000000000

# 84行目
# 再生する曲が設定されていないときに autoplaylist.txt に設定されている曲を自動で再生する
# デフォルトは yes ですがセッション用で使う場合は no に設定するのをおすすめ
UseAutoPlaylist = no
```

## bot起動
初回のみ、
Windows：```update_deps.bat```→```runbot.bat```の順でダブルクリック
MacOSX：```update_macdeps.command```→```runbot_mac.command```の順でダブルクリック

２回め以降は```runbot.bat```、```runbot_mac.command```の各スクリプトをダブルクリックするだけで起動します。