対象のメッセージの下にあるメッセージを取得する
#メッセージ #MessageManagerクラス
TextChannelクラスやDMChannelクラスのmessagesプロパティ(MessageManagerクラス)にあるfetchメソッドのafterオプションを使用することで、対象のメッセージの下にあるメッセージを取得することができる。
afterには文字列のメッセージIDを入れる。
対象のメッセージの下にあるメッセージをひとつだけ取得するには、limitオプションを1にする。
limitを1にしてもMessageオブジェクトが返ってくるのではなく、Collectionが返されます。
キーが文字列(メッセージID)、値がMessageオブジェクト
limitが1なら.first()、または.last()で取得したMessageのオブジェクトを取り出せます。
limitオプションを使わない場合、デフォルトでは50個のメッセージを取得します。
取得できなかった場合、エラーがcatchに渡されます。
注意
必ず対象のメッセージの下にメッセージがあるとは言えない。
メッセージがない場合は空のCollectionが返されます。
サンプルコード
対象のメッセージより下にあるメッセージの内容をコンソールへ送信するサンプルコード
code:js
client.once('ready' async () => {
const channel = await client.channels.fetch('対象のメッセージがあるチャンネルID')
const afterMessages = await channel.messages.fetch({ after: '対象のメッセージID' })
console.log(afterMessages
.map(message => message.cleanContent)
.join('\n'))
})
関連
対象のメッセージの上にあるメッセージを取得する
対象のメッセージの上下にあるメッセージを取得する