メンションすると Splatoon 3 のステージ情報を返却する Discord Bot です。
こちらのボットの API はえむおん氏制作の Spla3 API を情報取得に利用しています。コマンド体系は Project-Cube 様制作のイカボットの書式を参考にしています。
.env に Discord Token と Spla3 API の注意事項をよく読んだ上で 現在以降の全ステージ情報
への URL を記述してください。ボットは以下で起動します。
% cp .env{.example,}
% go run *.go
Discord サーバにボットを参加させたのち、ボットに以下のようにメンションすると対応するステージ情報を返却します。
@ikabot3 オープンマッチ
注: Discord の Message Content Intent を有効にするとメンション無しでも呼び出すことができます。Message Content Intent が利用可能な場合はすべてのメッセージを検索コマンドとして処理し、ステージ情報の検索結果が空でない場合のみメッセージを送信します。Message Content Intent は Privilleged Intent であるため初期値は無効です。Discord の Developer Portal で有効化したのち、.env の IKABOT3_ALLOW_MESSAGE_CONTENT_INTENT
を TRUE
にセットします(Gateway に利用可能な Intent を申告するようになります)。
キーワードに反応します
オープン
,オープンマッチ
... 現在のオープンマッチのステージ情報を返却しますチャレンジ
,チャレンジマッチ
... 現在のチャレンジマッチのステージ情報を返却しますバンカラ
,バンカラマッチ
,バカマ
... 現在のオープンマッチとチャレンジマッチのステージ情報を返却します
少々正確さを省いて以下の書式にも対応しています
ガチマ
,ガチマッチ
... チャレンジマッチと等価ですリグマ
,リーグマッチ
... オープンマッチと等価です
時刻を指定して問い合わせできます。過去情報は検索対象から除外されます(より正確には API が返却する時刻の範囲に依存します)。時刻は先述のキーワードに続くように時刻を加えるか、キーワードの先頭に○○時のを付加することで検索対象になります。
オープンマッチ19
... 19 時時点のオープンマッチのステージ情報を返却します1 時のチャレンジマッチ
... 1 時時点のチャレンジマッチのステージ情報を返却します
時刻指定の代わりに「次の」と記述すると相対指定になります。以下は相対指定を使ったサンプルです。現在開催中のステージ枠の次の開催枠に関する情報を返却します。
次のオープン
次の次のバンカラマッチ
次の次の次の次の次の次のチャレンジマッチ
上記は、「前の」を入れることでフェイントを加えることができます。
スケジュールからルールにマッチするステージ情報を検索して返却します。
オープンマッチガチヤグラ
... オープンマッチで開催されるガチヤグラのうち最も直近のものを返却しますチャレンジアサリ
... チャレンジマッチで開催されるガチアサリのうち最も直近のものを返却しますガチホコ
... チャレンジマッチとオープンマッチで開催されるガチホコバトルのうち最も直近のものを返却します
ルールは以下の表記ゆれに対応しています
(ガチ)?(エリア|ホコ|ホコバトル|ヤグラ|アサリ)
ルール名のみの場合は今のところ該当なしを返却します(TODO: オープンとチャレンジの両方を返却するようにしたい)。
(@ikabot3 は適宜読み替えてください)
@ikabot3 ガチマ
@ikabot3 次の次の前の次の次のガチマッチ
@ikabot3 次のガチマ
@ikabot3 次のオープンマッチ
@ikabot3 ガチマアサリ
@ikabot3 次のリグマヤグラ
@ikabot3 次のナワバリバトル
@ikabot3 エリア20
@ikabot3 19 時のガチマッチ
@ikabot3 ガチマ 20
@ikabot3 次のエリア
@ikabot3 次のガチヤグラ
- Support slash commands
- Remove many debug codes
- Migrate to logger from printf
- Unit Test