Nightbotのカスタムコマンドで使える変数について

Nightbot

こんにちは。

のちたままです。

今回はNightbotのカスタムコマンドで使える変数についてお話します。

変数って?

Nightbotでカスタムコマンドを作る際、Nightbotが用意してくれている文字列を使うことで、特定の機能を呼び出すことができます。

例えば!userというコマンドを作ってMessageの部分に$(user)という変数を入れると、チャットで!userを打った人の名前がチャット上に表示されます。

このように、変数を使うことでチャット上で様々な表示をすることができます。

他にもシャウトアウトコマンド(soコマンド)を作る際にも変数を使って情報を表示します。

soコマンドの作り方は以下をご覧ください。

実際にカスタムコマンドで変数を使って書く時は大抵、\$(変数 [文字列])という風に書きます。

ただ、変数によって書き方が異なりますので、この記事ではそれぞれの変数とその書き方について紹介をします。

変数一覧

Nightbotには26種類の変数が用意されています。

実際にカスタムコマンドで使うのは数種類だと思いますが、こういうのもあるんだと参考になれば幸いです。


以下にカスタムコマンドで使える変数一覧と概要を載せます。

各変数の詳しい書き方は項目名から詳細に飛んでください。

項目名概要記述例
Argumentsコマンドの後ろの引数を表示$(2)
Channel現在のチャンネルを表示$(channel)
ChannelID特定のチャンネルIDを表示$(channelid)
ChatID特定のチャットIDを取得。eval変数と組み合わせると便利$(chatid)
Countコマンドが使われた回数をカウント$(count)
Countdown指定した日時までの残り時間を表示$(countdown 10:00:00 PM Asia/Tokyo)
Countup指定した日時から現在までの経過時間を表示$(countup 10:00:00 PM Asia/Tokyo)
DJKhaledDJ khaledの成功への鍵(彼の言葉)をランダムで表示$(djkhaled)
EvalJavaScriptのコードを評価$(eval 2+2)
LastfmLast.fmアカウントに追加された音楽の情報を表示$(lastfm nochitamama)
LeagueOfLegendsLeague Of Legendsのランク情報を表示$(leagueoflegends nochitamama#jp1 jp)
Queryユーザーがコマンドの後ろに入力したものを表示$(leagueoflegends \$(query))
QueryStringコマンドの後に書かれたテキストをurlエンコードした文字列を表示$(querystring \$(twitch nochitamama “{{url}}”))
RainwaveRainwaveを使って流している曲の情報を表示$(rainwave all)
Steamユーザーのプロフィールに関する情報を表示$(steam nochitamama)
Time指定したタイムゾーンの現在時刻を表示$(time Asia/Tokyo)
ToUserコマンドの後ろに書いた最初の引数を表示$(touser)
TweetTwitterへのツイートを作る$(tweet \$(twitch \$channel ))
Twitch特定のユーザーのTwitchに関する情報を表示$(twitch nochitamama)
UrlFetchリモートURLを呼び出してレスポンスを取得し、表示
Userコマンドを呼び出した人の名前を表示Thank you $(user) !
UserID特定のユーザーのIDを表示$(userid)
UserLevelコマンドを呼び出したユーザーのユーザーレベルを表示$(userlevel)
Weather特定の場所の天気情報を表示$(weather tokyo)

Arguments

Arguments変数は1~9の数字を指定してコマンドの後ろに書かれた引数を表示する変数です。

このコマンドを打つ際には、半角スペースを入れて引数を打ちます。

この変数単体で使用するというより、他の変数と組み合わせて記述することが多いと思います。

以下は2番目の引数を表示するコマンドです。

  • 記述例
    $(2)
  • コマンドの打ち方(コマンド名を!commandとした場合)
    !command a b c
  • 結果
    b

Channel

Channel変数はコマンドを打った人のチャンネル名を表示する変数です。

  • 記述例
    $(channel)

ChannelID

ChannelID変数はコマンドを打った人のチャンネルID(ユーザー名とは別)を表示します。

主に外部サービスなどで用いられるようなので、基本的には利用することがありません。

  • 記述例
    $(channelID)

ChatID

ChatID変数は特定のチャットIDを取得するために使用します。

後述するEval変数と一緒に使ってYoutubeなどのbotで使用されます。

Count

Count変数はコマンドが打たれた回数を表示する変数です。

  • 記述例
    $(count)
  • 結果
    1
    ※コマンドが打たれる度に+1

Countdown

Countdown変数は現在から指定した日時までの時間を表示する変数です。

時間のみの指定もできますし、日付と時間両方で指定もできます。

時間のみ指定する書き方は$(countdown 時間:分:秒 AM/PM タイムゾーン)です。

  • 記述例
    $(countdown 10:00:00 PM Asia/Tokyo)
  • 結果
    23 hours 10 minutes 41 seconds

日付も入れる場合の書き方は$(countdown 月 日 年 時間:分:秒 AM/PM タイムゾーン)です。

  • 記述例
    $(countdown Jan 1 2025 10:00:00 PM Aisa/Tokyo)
  • 結果
    5 months 19 days 23 hours 11 minutes 12 seconds

Countup

CountUp変数は指定した日時から現在までの経過時間を表示する変数です。

書き方はCountdown変数と同じように時間のみの指定と日時の両方を指定する書き方があります。

時間のみ指定する書き方は$(countup 時間:分:秒 AM/PM タイムゾーン)です。

  • 記述例1
    $(countdown 10:00:00 PM Asia/Tokyo)
  • 結果1
    1 hour 5 minutes 40 seconds

日付も入れる場合の書き方は$(countup 月 日 年 時間:分:秒 AM/PM タイムゾーン)です。

  • 記述例2
    $(countdown Jan 1 2024 10:00:00 PM Asia/Tokyo)
  • 結果2
    6 months 11 days 1 hour 6 minutes 27 seconds

DJKhaled

DJKhaled変数はアメリカ合衆国のDJである、DJ Khaledが言ったポジティブな言葉を表示する変数です。

変数の書き方は\$(djkhaled)です。

  • 記述例
    DJ Khaledはかつてこんな言葉を残しました:\$(djkhaled)

Eval

Eval変数はJavaScriptのコードを評価するために使う変数です。

変数の後ろにJavaScriptのコードを書くことで動作させることが可能です。

  • 記述例
    $(eval 2+2)
  • 結果
    4

Lastfm

Lastfm変数はLast.fmアカウントに追加された音楽の情報を表示する変数です。

YoutubeやSpotifyと連携して、視聴者に配信で流れている曲の情報を知ってもらうときに便利です。

アカウントが無い場合は、サイトで流れている音楽の情報が出るようです。

基本的な書き方は$(lastfm ユーザー名)です。

  • 記述例1
    $(lastfm nochitamama)
  • 結果1
    The Reason by Hoobastank

また、Lastfm変数は応用的な書き方として、formatted stringを用いて書くことが可能です。

利用できるformatted stringは3種類(title,artist,url)です。

書き方は$(lastfm ユーザー名 “formatted string”)です。

  • 記述例2
    $(lastfm nochitamama “{{title}} by {{artist}} – {{url}}”)
  • 結果2
    The Reason by Hoobastank – http://www.last.fm/music/Hoobastank/_/The+Reason

LeagueOfLegends

LeagueOfLegends変数はLeague Of Legendsのランク情報を表示する変数です。

書き方は$(leagueoflegends ユーザー名 地域)です。

ユーザ名は#の後ろまで全て記述してください。

また、地域に関してはアルファベット大文字2または3文字で指定してください。
(一覧:BR,EUNE,EUW,JP,KR,LAN,LAS,NA,OCE,TR,RU,PH,SG,TH,TW,VN,PBE)

  • 記述例
    $(leagueoflegends nochitamama#jp1 jp)
  • 結果
    nochitamama#jp1 has no rank.

Query

Query変数は、ユーザーがコマンドの後ろに入力したものを表示する変数です。

入力を受け付ける他の変数と組み合わせることで便利になります。

例えば、先ほどのLeagueOfLegends変数と組み合わせると以下のように書けます。

$(leagueoflegends \$(query))

これにより、コマンドを打つ際にユーザー名と地域を引数として渡すことで、LeagueOfLegends変数で示した結果と同じものが表示されます。

  • 記述例(コマンド名をLoLとする)
    !LoL nochitamama#jp1 jp
  • 結果
    nochitamama#jp1 has no rank.

入力を受け付ける変数であれば使用できるので、前述したCountdown変数などにも使えます。

QueryString

QueryString変数は、コマンドの後に書かれたテキストをurlエンコードした文字列を表示します。

後述するURLFetch変数と組み合わせてデータをサーバーに渡したりするときにも用いられます。

例えば、後述するTwitch変数と組み合わせて記述することができます。
※単にTwitchのURLを表示するだけならTwitch変数のみで良いです。

  • 記述例
    $(querystring \$(twitch nochitamama “{{url}}”))
  • 結果
    https%3A%2F%2Fwww.twitch.tv%2Fnochitamama

Rainwave

Rainwave変数は、Rainwaveを使って流している曲の情報を表示する変数です。

Rainwaveはゲームのサウンドトラックやリミックスなどを流すゲームラジオネットワークです。

基本的な書き方は$(rainwave ジャンル)です。

ジャンルは5種類(all, game, chiptune, ocremix, covers)から指定します。

  • 記述例1
    $(rainwave all)
  • 結果1
     Knight Theme by David Wise

Rainwave変数にもformatted stringがあります。

Lastfmと同様に、title, artist, urlの3種類が使えます。

書き方は$(rainwave ジャンル “formatted string”)です。

  • 記述例2
    $(rainwave all “{{title}} by {{artist}} – {{url}}”)
  • 結果2
    The Observer by Phonetic Hero – https://ocremix.org/remix/OCR03017

Steam

Steam変数は、ユーザーのプロフィールに関する情報を表示できます。

Steam変数を動かすにはいくつか条件があります。

  • SteamとTwitchを連携している
  • Steamのプロフィールが「公開」になっている

Steamのプロフィールは「フレンドのみ」になっているとコマンドで情報が出てきません。

また、「ゲームの詳細」がフレンドのみになっているとゲームに関する情報は[not playing a game]と表示されます。

基本的な書き方は$(steam ユーザー名)です。

Steam変数にもformatted stringがあります。

項目数が多いので、各項目については以下の記事をご覧ください。

書き方は$(steam ユーザー名 “formatted string”)です。

  • 記述例2
    $(steam nochitamama “{{name}}は{{gameName}}を遊んでいるよ! – {{gameUrl}}”)
  • 結果2
    nochitamamaはIdle Cave Minerを遊んでいるよ! – https://steamcommunity.com/app/2289450

Time

Time変数は、指定したタイムゾーンの現在時刻を表示します。

基本的な書き方は$(time タイムゾーン)です。

タイムゾーンは指定の書き方があるので、そちらを参考にしてください。

Time - Nightbot Docs
  • 記述例1
    $(time Asia/Tokyo)
  • 結果1
    July 13th 2024, 9:26:07 pm JST GMT+09:00

また、Time変数は応用的な書き方があります。

タイムゾーンの後ろに所定の書き方をすることで、年月日や時間の表示ができます。

  • 記述例2
    $(time Asia/Tokyo “YYYY MMM D hh:mm:ss a [GMT]Z”)
  • 結果2
    2024 Jul 13 09:40:50 pm GMT+09:00

年月日などの書き方はこちらを参考にしてください。

Moment.js | Docs

ToUser

ToUser変数は、コマンドの後ろに書いた最初の引数を表示します。

書き方は$(touser)です。

  • 記述例
    $(touser)
  • コマンドの打ち方(コマンド名がcommandの場合)
    !command nochitamama
  • 結果
    nochitamama

ToUser変数のみだとあまり役立ちませんが、以前書いたsoコマンドのように他の変数と組み合わせると便利です。

soコマンドについては以下の記事をご覧ください。

Tweet

Tweet変数は、Twitterへのツイートを作る変数です。

配信開始時などにツイートをする際に、ブラウザの共有ボタンを押したりURLをコピーしてツイートを作る手間が省けます。

コマンドを打つと以下のようにチャット欄にURLが表示され、クリックすると2枚目のようにTwitterが開いてツイート画面が表示されます。

URLの表示
ツイート画面

書き方は$(tweet Tweetしたい内容)です。

後述するTwitch変数と組み合わせて配信タイトルやカテゴリなどもTweetできます。

  • 記述例
    $(tweet \$(twitch $channel “配信遊びに来てね!{{game}} – {{url}}”))
  • 結果
    https://bit.ly/4665ccw

Twitch

Twitch変数は、特定のユーザーのTwitchに関する情報を表示する変数です。

基本的な書き方は$(twitch ユーザー名)です。

また、formatted stringを使うことで、細かな情報を好きなように並べて表示できます。

書き方は$(twitch ユーザー名 “formatted string”)です。

Twitch変数のFormatted Stringについては以下の記事で解説しているので、ぜひご覧ください。

UrlFetch

UrlFetch変数は、リモートURLを呼び出してレスポンスを取得し、表示します。

基本的な書き方は$(urlfetch URL)です。

僕は詳しくないので、詳細を知りたい方は以下のURLからドキュメントをご覧ください。

UrlFetch - Nightbot Docs

User

User変数は、コマンドを呼び出した人の名前を表示します。

書き方は$(user)です。

  • 記述例
    Thank you $(user) !
  • コマンドの打ち方(コマンド名が!tyの場合)
    !ty
  • 結果
    Thank you nochitamama !

UserID

UserID変数は、特定のユーザーのIDを表示します。

特定のサービス内で使用する際に用いるので、基本的には使用しません。

書き方は$(userid)です。

UserLevel

UserLevel変数は、コマンドを呼び出したユーザーのユーザーレベルを表示します。

書き方は$(userlevel)です。

  • 記述例
    $(userlevel)
  • 結果
    owner

ユーザーレベルは以下の6つです。

  • owner:配信者
  • moderator:モデレーター
  • twitch_vip:VIPバッジ保持者
  • regular:Nightbotのレギュラーリストに記載された人
  • subscriber:サブスクライバー
  • everyone:デフォルトユーザー

Weather

Weather変数は、特定の場所の天気情報を表示します。

書き方は$(weather 地域)です。

地域の記述方法は特に指定がありませんでした。

いくつか試してみたところ市区町村単位で指定すれば表示してくれるようです。

  • 記述例
    $(weather tokyo)
  • 結果
    Weather for Tokyo: Conditions are Showers in the Vicinity with a temperature of 77F (25C). The wind is blowing from the E at 2mph (3km/h) and the current humidity is 92%

最後に

今回はNightbotのカスタムコマンドで使える変数について紹介しました。

コマンドを理解すると様々なことが表示できるので、いろいろ試してみてください。

それではまた別の記事でお会いしましょう。


Twitchにて配信活動をしています。

もし良ければチャンネルを見ていただけると嬉しいです。

www.twitch.tv

その他のリンクはこちら

lit.link

コメント

タイトルとURLをコピーしました