Skip to content

Latest commit

 

History

History
43 lines (32 loc) · 3.25 KB

README.md

File metadata and controls

43 lines (32 loc) · 3.25 KB

マーダーミステリーデータ収集用Slack bot

Overview

Slack上で、マーダーミステリーを行い、Googleスプレッドシートにログを収集するためのSlackボットです。 プレイヤーの招待から、ログの記録、投票、結果発表までをコマンドで実行出来、スムーズにゲームを進行できます。

SlackのSocket Modeを利用しているので、ローカル環境でDockerを立ち上げれば運用が可能です。

タスクキューCeleryを用いた非同期処理で動作しています。

Set Up

[工事中]

Game Flow

  1. Slackチャンネルを作成。
  2. マスターシートのゲームマスターにチャンネル名・プレイヤー・使用シナリオを記入。
  3. /invite_playersコマンドで、プレイヤーをチャンネルに招待。
  4. /prepareコマンドで、事前情報(ゲームの流れ、シナリオ、キャラクターシート)を送信。 [工事中]

Commands

Game Commands

  • /invite_players: (管理者コマンド)マスターのスプレッドシートを基にプレイヤーを招待する。この時、マスターのスプレッドシートの再読み込みからのDBへの保存も行われる。
  • /prepare: (管理者コマンド)ゲームの事前情報を通知。
  • /start_game: (管理者コマンド)ゲーム開始のアナウンスと疑問点解消時間開始のアナウンスが送信される。/start_game 5のように疑問点解消時間を設定する必要がある。5分後に管理者へ通知が来る。
  • /start_discussion: (管理者コマンド)議論開始メッセージが送信される。/start_game 30のように時間を設定する必要がある。30分後に管理者に通知が来る。
  • /start_vote: (管理者コマンド)投票開始コマンド。それまでのゲームのログがGoogleスプレッドシートに保存される。保存が終わり次第、プレイヤーに投票を促すメッセージを送る。
  • /vote: (プレイヤーコマンド)このコマンドを入力すると投票モーダルが表示される。

Emergency Commands

  • /scoring: (管理者コマンド)モーダルでのポイント入力に失敗したときに再度モーダルを表示してやり直すためのコマンド。
  • /announce_result: (管理者コマンド)自動の結果発表が失敗した場合手動で行うためのコマンド。

Debug Commands

  • /reset: (管理者コマンド)DBのフラグ(投票完了、アノテーション完了)をFalseにリセットするコマンド。
  • /load_master_sheets: (管理者コマンド)/invite_playersで行われる、マスターのスプレッドシートの再読み込み・DBに保存をマニュアルで行うためのコマンド。
  • /save_messages: (管理者コマンド)/start_voteで行われる、ゲームログのスプレッドシートへの保存をマニュアルで行うためのコマンド。
  • /print_db: (管理者コマンド)実行されたチャンネルのDB情報を管理者だけが見えるようにprintするコマンド。

Download Command

  • /download: (管理者コマンド)ゲームのログをスプレッドシートからjsonlとpklでローカルにダウンロードする。