リアクションされるのを待ち受けて処理を実行する
第1引数に収集するかどうか判定するフィルター(必須)、第2引数でオプションを指定できる
使い道として、time: 1000のように待ち時間だけ指定して、リアクションをカウントしたり、max: 1のように1個のみにしてリアクションが付けられるまで待つといったことが出来る
メッセージを送った人から👌のリアクションを15000ミリ秒(15秒)間待ち受けて、リアクションされたら処理をする例 code:js
const filter = (reaction, user) => user.id === message.author.id && reaction.emoji.name === '👌'
message.awaitReactions({ filter, max: 1, time: 15_000, errors: 'time' }) .then(() => console.log('リアクションされました'))
.catch(() => {}) // 時間切れの処理。エラーを防ぐために何もしない場合でも書く必要がある(何かすることもできる)
メッセージに対する👌のリアクションを15000ミリ秒(15秒)間待ち受けて、収集できた個数を出力する例 code:js
message.awaitReactions({ filter: reaction => reaction.emoji.name === '👌', time: 15_000 })
.then(collected => console.log(リアクションが ${collected.size} 個つけられました))
WIP: メッセージに対して👌リアクションが3つ付くまで待ち受けて、リアクションを付けたユーザーを出力する例
code:js
message.awaitReactions({ filter: reaction => reaction.emoji.name === '👌', max: 3 })
.then(collected => console.log(${collected.first().users.cache.map(user => user.tag).join(', ')} がリアクションを付けました))
サンプル
ドキュメント