Macでdiscordで音楽botを導入する

discord，便利すぎて死ぬほど使ってます．
ゲームを一緒にやっている人がdiscordで音楽を流したいとのことでbotを探したらmusicbotというものがあるらしく導入を決意．

ちょっとハマったとこがあったのでメモ

基本的には
[Discord 音楽botの作り方 SexualRhinoceros/MusicBot](http://takeshi.kill.jp/post-2254/)
を参考にさせていただきました.
あとはOSX版の公式を見れば大抵わかるはず．
[Guide for OSX](https://github.com/Just-Some-Bots/MusicBot/wiki/Guide-for-OSX)
ある意味日本語訳に近い可能性は微レ存

よくわかんなくてもターミナルでコマンドを実行すればできるようになっているはず．
ただし一部でエディタを使う場面があるので，好みのものを使ってください．
公式はNotePad+を推しています．自分はnvimでやりました.

# 準備
### OSX版discordのインストールと設定
インストールがまだなら[discord公式](https://discordapp.com/)からダウンロードとインストールをします．
なお，**導入したいサーバの権限を持っている必要があります**．権限を管理者にもらっといてください．自分で作成したサーバなら確実です．
アプリを開いて，自分のアカウントでログインします．
ログインできたらディスプレイの左上の「discord」から詳細設定を押します．すると
![Screen Shot 2017-06-01 at 5.33.31 PM.png](https://qiita-image-store.s3.amazonaws.com/0/170560/c4202cb5-49ca-d995-8912-d045020cb33f.png)
こんな感じの画面が出るので、赤で丸をつけたテーマを押します．
遷移した先の画面に「開発者モード」というものがあるので，チェックを入れておいてください．

### その他ツールのダウンロード
アプリケーションにあるターミナルを開き，（以下のアイコン）
<img width="100" alt="term.png" src="https://qiita-image-store.s3.amazonaws.com/0/170560/8ba989f1-4ee4-24e4-7a6f-cb07288edaa7.png">
brewがない人は以下のコマンドをターミナルにコピペして入れます．
```
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
```
あとは以下のコマンドを一行ずつ実行してください．
xcode-select --install のところでポップアップが出ると思うので指示に従ってください．
場合によってはupdateに時間がかかるかも
```
brew update
xcode-select --install
brew install python3
brew install git
brew install ffmpeg
brew install opus
brew install libffi
brew install libsodium
```
こいつらがちゃんと入ってないと動きません．以下MusicbotをDesktop上に作っていきます．一行ずつ実行．
```
cd ~/Desktop
git clone https://github.com/Just-Some-Bots/MusicBot.git MusicBot -b master
```
デスクトップにMusicbotというフォルダができていると思います．
これでだいたい準備OKです．ターミナルは開いたままで次に進みます．
# Musicbotの作成
[discord開発者用ページ](https://discordapp.com/login?redirect_to=/developers/applications/me)にアクセスしログイン．
ここで注意ですが，ウェブ版のdiscordを使ったことがある人は一回ログアウトしましょう．なんならブラウザのキャッシュを削除してからやると確実です．
ウェブ版の一時アカウント？みたいなやつで進んでいくとはまります．**必ずいつも使っているアカウントでログイン**してください．
以下英語版なので若干違うかもですがだいたい同じはず．
NewAppをクリックすると
![Screen Shot 2017-06-01 at 2.37.43 PM.png](https://qiita-image-store.s3.amazonaws.com/0/170560/2a1bb9b3-e1c4-ac54-7228-39a3f1a30669.png)
こんなん出るので，適当にAPP NAMEとアイコンをきめて下の青いボタンからbotを生成．すると次のような画面に遷移．

![Screen Shot 2017-06-01 at 4.59.03 PM.png](https://qiita-image-store.s3.amazonaws.com/0/170560/cfbbc1ed-79fe-3cd3-8ffa-a0d407773e86.png)

ここでCreate a bot Userを押してください．すると
![Screen Shot 2017-06-01 at 5.57.54 PM.png](https://qiita-image-store.s3.amazonaws.com/0/170560/4e2b3008-487d-98ab-12a8-eb5e50086f09.png)
このような画面になります．
図の位置のclick to revealをクリックし，Tokenをコピーしてください．**二つあるので注意してください**．この文字列を
~/Desktop/MusicBot/config/example_options.ini の18行目にある
```
Token = bot_token
```
のbot_tokenをすべて消して上書きしてください（適当なエディタで）．
次に同ファイルの30行目にある
```
Owner_ID = 000000000000000000
```
の0を自分がいつも使っているアカウントのIDで置き換えてください．自分のIDは以下のようにして確認できます．
**「OSX版のdiscord（WEBじゃない方)で」**図のように適当なサーバのVCにつないで自分のアイコンを右クリックすればよいです。
![Screen Shot 2017-06-01 at 5.40.50 PM.png](https://qiita-image-store.s3.amazonaws.com/0/170560/a2c27b1c-a291-5986-1a43-864e57f61d5a.png)

Owner_IDを書き換えたらファイルの設定は終了です．
公式ドキュメントにはexample_options.iniをoptions.iniという名前で保存しろとありますが，botを実行すると自動的に生成されるので必要ありません．
**開発者のページに戻り，**今度は，APP DetailsのClient IDをコピーしてください．
![Screen Shot 2017-06-01 at 6.22.46 PM.png](https://qiita-image-store.s3.amazonaws.com/0/170560/8a2ede49-01b6-6193-fa42-d90ca68c75e3.png)
これを，次のURLの**\<CLIENT ID\>**を置き換えて接続してください．
https:[]()//discordapp.com/oauth2/authorize?&client_id=**\<CLIENT ID\>**&scope=bot&permissions=0
すると，次のようなページに飛びます．
![Screen Shot 2017-06-01 at 6.32.31 PM.png](https://qiita-image-store.s3.amazonaws.com/0/170560/c559f049-dba0-5514-d146-8e753ac5c9dc.png)
いつもアカウントが参加しているサーバのうち，権限を持っているサーバが選択できます．musicbotを追加したいサーバを選んで認証してください．
認証が完了すれば選択したサーバのメンバにbotが追加されます．

# music botの起動
ターミナルに戻り，以下のコマンドを順に実行します．4つめでアップデートを行い，なんかをダウンロードするので少し待ちましょう．
```
cd ~/Desktop/MusicBot
chmod +x update_macdeps.command
chmod +x runbot_mac.command
./update_macdeps.command
./runbot_mac.command
```
これでサーバにbotが追加されていればもう使える状態です．
# 機能と使い方
基本的には[公式のコマンドリスト](https://github.com/Just-Some-Bots/MusicBot/wiki/Commands)を見た方が良いです．
### 機能
基本的にはyoutubeの音源を引っ張ってきて、勝手にかけてくれます．他のサイトも指定できますが割愛．
### 使い方
botを使うためには，自分がvcに入った状態で
```
!summon
```
と発言してください．botが召喚されます．おちゃめなので適当な音楽が初めは再生されるはずです．このあとに
```
!play ＜検索ワード＞
```
とするとyoutubeの検索結果の一番上に出てきたものがキューに追加されます．
例えば
```
!play wild eyes 水樹奈々
```
と発言すると神曲がキューに追加されます．なお，urlでもOKです．
```
!skip
```
と発言すると現在再生中の曲をスキップします．はじめのおちゃめ曲をスキップするときにも使います．
現在のキューを確認するには
```
!queue
```
と発言します．リストが表示されるはずです．
botを終了するときは
```
!disconnect
```
です．これくらいかなぁ．デフォルトだと全員playとかは使えるけどsummonとかは管理者用のコマンドになってるはず．