インストール方法 - TumoiYorozu/DiscordWerewolf.ts GitHub Wiki

Discord Bot のアクセストークンの準備をした後、

をお読みください。

Discord Bot のアクセストークンの準備

以下のページから Bot の作成とトークンを入手してください.Bot は 2体必要なので2つ作成してください.
(生存者ボイスと霊界ボイスをつなぐ時,1Bot 1ボイチャしか入れないので2つ必要) https://discordapp.com/developers/applications/me

詳しいやり方↓
https://liginc.co.jp/370260

追記: Discord の仕様変更により、 Bot に Message content intentの権限が必要になりました。Discord Developer Portal から、自分の bot を選択した後、左のSettings の BotMESSAGE CONTENT INTENTオン にして下さい。

コマンドでインストール(for Ubuntu.シンプル)

確認した環境

  • WSL Ubuntu 18.04 (Windows10)
  • AWS EC2 Ubuntu 18.04

Windows で実行する場合は WSL と言う機能を使って Windows 上の Ubuntu で実行する方法を紹介します.
この記事 などを参考に WSL の Ubuntu をセットアップしてください.

# 必要パッケージのインストール.node 16 を使うために n 経由でインストール.apt で入れた node は削除
sudo apt update
sudo apt install -y nodejs npm git wget ffmpeg
sudo npm install n -g
sudo n 16.9.1
sudo apt purge -y nodejs npm
exec $SHELL -l

# TypeScript のインストール.Git clone.コンパイル
sudo npm install -g [email protected]
git clone https://github.com/TumoiYorozu/DiscordWerewolf.ts.git
cd DiscordWerewolf.ts/
npm install
tsc

# デフォルトだと BGM はインストールされないので,フリーBGM をDL.mp3 から wav の変換に ffmpeg が必要
sh ./misc_tools/setFreeBGM/set_dova_syndrome_BGMs.sh

環境変数の設定(例)

.bashrc ファイルを編集して環境変数を設定します.
Ubuntu のターミナルから nano ~/.bashrc と打つと,ファイルの編集ができるので,一番下に

export DISCORD_WEREWOLF_BOT_TOKEN_1="BOT1のトークン"
export DISCORD_WEREWOLF_BOT_TOKEN_2="BOT2のトークン"
export DISCORD_WEREWOLF_HTTP_IP="BotをインストールしたPCのIPアドレス.例 192.168.1.2"
export DISCORD_WEREWOLF_HTTP_ADDR="外部から接続するために表示するアドレス.例A 123.45.67.89, 例B hogehoge.com"
export DISCORD_WEREWOLF_HTTP_PORT="1080"
export DISCORD_WEREWOLF_SYSTEM_GM="システムGM 例 : 564310525715021835"

を追記します.
「外部から接続するために表示するアドレス」はグローバルIP などを持っていればそれを設定すれば良いです.外部から接続できるアドレスを持っていない場合は DISCORD_WEREWOLF_HTTP_IP と同じや 127.0.0.1 (ローカル・ループバック・アドレス:自分自身にアクセスするアドレス)を設定しておけば良いです.
DISCORD_WEREWOLF_SYSTEM_GM にシステム操作権限を与える人の ID を記入します.ID はデベロッパーモードを有効化して,自分のアカウントを右クリック→「IDをコピー」などで取得できます.参考

ファイルを編集する際,nano の場合, Ctrl+O で保存の確認されるので Enter で保存されます.保存完了後,Ctrl+X で nano を終了できます.
ターミナルを再起動するか,source ~/.bashrc と打つことで環境変数の設定が反映されます.
変数がちゃんと反映されているか確認するには,例えば
echo $DISCORD_WEREWOLF_BOT_TOKEN_1
と打ち,設定したトークンが表示されれば完了です.

実行

node build/index.js -s server_settings/dova_syndrome_BGMs.json5

Windows でのインストール

Node.js公式サイト16.*.* LTSをダウンロード・インストールします.バージョン16なら何でも良いと思います.インストール後,コマンドプロンプトを開きnode -vと打ちv16.9.1などのようにバージョン名が出てくれば成功です.

このBotのトップページCodeをクリックしDownload Zipからコードをダウンロードします.もしくはここから直接ダウンロードできます.

ダウンロード・Zip解凍完了後,そのフォルダでコマンドプロンプトを開きます.エクスプローラーのアドレスバー(~\DiscordWerewolf.tsと表示されているところ)にcmdと打ち,Enter キーを押すことで簡単に開けます.

黒い画面が出てきたら

npm install -g typescript
npm install
node_modules\.bin\tsc.cmd

で,コードのセットアップが完了です.

環境変数の設定

プロンプトで

set DISCORD_WEREWOLF_BOT_TOKEN_1=【BOT1のトークン】
set DISCORD_WEREWOLF_BOT_TOKEN_2=【BOT2のトークン】
set DISCORD_WEREWOLF_HTTP_IP=【BotをインストールしたPCのIPアドレス.例 192.168.1.2】
set DISCORD_WEREWOLF_HTTP_ADDR=【外部から接続するために表示するアドレス.例A 123.45.67.89, 例B hogehoge.com】
set DISCORD_WEREWOLF_HTTP_PORT=【1080】
set DISCORD_WEREWOLF_SYSTEM_GM=【システムGM 例 : 564310525715021835】

と打つことで,そのプロンプト内限定で環境変数を設定できます.=の前後に余分なスペースなどは入れないでください.そのプロンプトを閉じるまで,この設定は有効です.
他にもスタートメニューで「環境変数を編集」と検索し,出てきたウィンドウで恒久的な設定をすることもできます.ここで設定した場合,プロンプトを閉じても設定が有効なままです.

環境変数を設定できたら,プロンプトで

echo %DISCORD_WEREWOLF_BOT_TOKEN_1%

などと打ち,設定したトークンが表示されれば,大丈夫です.
設定後

node build/index.js

とプロンプトで打てば,Bot を起動できます.

音楽の設定

適当なフォルダに wav ファイルを配置し,BGM 設定ファイルを書くことで,BGM をつけることができます.
※ wav ファイルはステレオ(2ch)で,サンプリングレート 48000 Hz で用意する必要があります.

例えば DiscordWerewolf.ts 以下の media/dova_syndrome_BGMs フォルダに A.wav, B.wav, ... などを用意します.
用意したら,

{
  music :{
    opening     : "./media/dova_syndrome_BGMs/A.wav",
    first_night : "./media/dova_syndrome_BGMs/B.wav",
    day_time    : "./media/dova_syndrome_BGMs/C.wav",
    vote        : "./media/dova_syndrome_BGMs/D.wav",
    night       : "./media/dova_syndrome_BGMs/B.wav",
    good_win    : "./media/dova_syndrome_BGMs/E.wav",
    evil_win    : "./media/dova_syndrome_BGMs/A.wav",
  },
}

という内容のテキストファイルを用意し,例えば server_settings フォルダ以下に dova_syndrome_BGMs.txt と保存します.
Bot の起動時に

node build/index.js -s server_settings/dova_syndrome_BGMs.txt

とBGM設定ファイルの場所を一緒に指定することで,BGM が設定できます.
選曲に関してはお好きなものを使えばよいですが,例えば Linux(Ubuntu)/Mac 用の BGM 設定スクリプト を見ると,参考になるかもしれません.

docker でインストール

対応したいけど,Dockerfile 何も分からねぇ… tsc でのビルドが失敗する….依存パッケージがインストールされて無くない…? なんで…