ikabot3

メンションすると Splatoon 3 のステージ情報を返却する Discord Bot です。

こちらのボットの API は えむおん氏制作の Spla3 API を情報取得に利用しています。コマンド体系は Project-Cube 様制作のイカボットの書式を参考にしています。

ボット起動方法

.env に Discord Token と Spla3 API の注意事項をよく読んだ上で 現在以降の全ステージ情報 への URL を記述してください。ボットは以下で起動します。

% cp .env{.example,}
% go run *.go

コマンドの使い方

Discord サーバにボットを参加させたのち、ボットに以下のようにメンションすると対応するステージ情報を返却します。

@ikabot3 オープンマッチ

現在のステージ情報を得る

キーワードに反応します

  • オープン, オープンマッチ … 現在のオープンマッチのステージ情報を返却します
  • チャレンジ, チャレンジマッチ … 現在のチャレンジマッチのステージ情報を返却します
  • バンカラ, バンカラマッチ … 現在のオープンマッチとチャレンジマッチのステージ情報を返却します

少々正確さを省いて以下の書式にも対応しています

  • ガチマ, ガチマッチ … チャレンジマッチと等価です
  • リグマ, リーグマッチ … オープンマッチと等価です

特定の時刻のステージ情報を得る

時刻を指定して問い合わせできます。過去情報は検索対象から除外されます(より正確には API が返却する時刻の範囲に依存します)。時刻は先述のキーワードに続くように時刻を加えるか、キーワードの先頭に○○時のを付加することで検索対象になります。

  • オープンマッチ19 … 19 時時点のオープンマッチのステージ情報を返却します
  • 1 時のチャレンジマッチ … 1 時時点のチャレンジマッチのステージ情報を返却します

相対指定で指定した時刻でステージ情報を得る

時刻指定の代わりに「次の」と記述すると相対指定になります。以下は相対指定を使ったサンプルです。現在開催中のステージ枠の次の開催枠に関する情報を返却します。

  • 次のオープン
  • 次の次のバンカラマッチ
  • 次の次の次の次の次の次のチャレンジマッチ

上記は、「前の」を入れることでフェイントを加えることができます。

特定のルールを検索する

スケジュールからルールにマッチするステージ情報を検索して返却します。

  • オープンマッチガチヤグラ … オープンマッチで開催されるガチヤグラのうち最も直近のものを返却します
  • チャレンジアサリ … チャレンジマッチで開催されるガチアサリのうち最も直近のものを返却します

ルールは以下の表記ゆれに対応しています

  • (ガチ)?(エリア|ホコ|ホコバトル|ヤグラ|アサリ)

ルール名のみの場合は今のところ該当なしを返却します(TODO: オープンとチャレンジの両方を返却するようにしたい)。

コマンドの例

(@ikabot3 は適宜読み替えてください)

@ikabot3 ガチマ
@ikabot3 次の次の前の次の次のガチマッチ
@ikabot3 ガチマ
@ikabot3 次のガチマ
@ikabot3 次のオープンマッチ
@ikabot3 ガチマアサリ
@ikabot3 次のリグマヤグラ
@ikabot3 次のナワバリバトル
@ikabot3 エリア20
@ikabot3 19 時のガチマッチ
@ikabot3 ガチマ 20
@ikabot3 次のエリア

TODO

  • Remove many debug codes
  • Migrate to logger from printf
  • Unit Test

GitHub

View Github