Slack上で、マーダーミステリーを行い、Googleスプレッドシートにログを収集するためのSlackボットです。 プレイヤーの招待から、ログの記録、投票、結果発表までをコマンドで実行出来、スムーズにゲームを進行できます。
SlackのSocket Modeを利用しているので、ローカル環境でDockerを立ち上げれば運用が可能です。
タスクキューCeleryを用いた非同期処理で動作しています。
[工事中]
- Slackチャンネルを作成。
- マスターシートのゲームマスターにチャンネル名・プレイヤー・使用シナリオを記入。
/invite_players
コマンドで、プレイヤーをチャンネルに招待。/prepare
コマンドで、事前情報(ゲームの流れ、シナリオ、キャラクターシート)を送信。 [工事中]
/invite_players
: (管理者コマンド)マスターのスプレッドシートを基にプレイヤーを招待する。この時、マスターのスプレッドシートの再読み込みからのDBへの保存も行われる。/prepare
: (管理者コマンド)ゲームの事前情報を通知。/start_game
: (管理者コマンド)ゲーム開始のアナウンスと疑問点解消時間開始のアナウンスが送信される。/start_game 5
のように疑問点解消時間を設定する必要がある。5分後に管理者へ通知が来る。/start_discussion
: (管理者コマンド)議論開始メッセージが送信される。/start_game 30
のように時間を設定する必要がある。30分後に管理者に通知が来る。/start_vote
: (管理者コマンド)投票開始コマンド。それまでのゲームのログがGoogleスプレッドシートに保存される。保存が終わり次第、プレイヤーに投票を促すメッセージを送る。/vote
: (プレイヤーコマンド)このコマンドを入力すると投票モーダルが表示される。
/scoring
: (管理者コマンド)モーダルでのポイント入力に失敗したときに再度モーダルを表示してやり直すためのコマンド。/announce_result
: (管理者コマンド)自動の結果発表が失敗した場合手動で行うためのコマンド。
/reset
: (管理者コマンド)DBのフラグ(投票完了、アノテーション完了)をFalseにリセットするコマンド。/load_master_sheets
: (管理者コマンド)/invite_players
で行われる、マスターのスプレッドシートの再読み込み・DBに保存をマニュアルで行うためのコマンド。/save_messages
: (管理者コマンド)/start_vote
で行われる、ゲームログのスプレッドシートへの保存をマニュアルで行うためのコマンド。/print_db
: (管理者コマンド)実行されたチャンネルのDB情報を管理者だけが見えるようにprintするコマンド。
/download
: (管理者コマンド)ゲームのログをスプレッドシートからjsonlとpklでローカルにダウンロードする。