指定したチャンネルにメッセージを送信する方法まとめ
ここではメッセージを送信する方法にフォーカスしているが、.send()の部分を変えるだけで色んな処理に応用できる
v11の場合はそれぞれ.cacheがあれば、それを除くことで使うことができる 「メッセージが送信された」「チャンネル」
message.channel.send('メッセージ')
「メッセージが送信された」「サーバー内の」「IDで指定した」「チャンネル」
message.guild.channels.resolve('チャンネルID')?.send('メッセージ')
「メッセージが送信された」「サーバー内の」「チャンネル名で指定した」「チャンネル」(複数あった場合は最初の1つ)
message.guild.channels.cache.find(ch => ch.name === 'チャンネル名')?.send('メッセージ')
「メッセージが送信された」「サーバー内の」「チャンネル名で指定した」「全ての」「チャンネル」
message.guild.channels.cache.filter(ch => ch.name === 'チャンネル名').forEach(ch => ch.send('メッセージ'))
「ボットが参加している全ての」「IDで指定した」「チャンネル」
client.channels.resolve('チャンネルID')?.send('メッセージ')
「ボットが参加している全ての」「チャンネル名で指定した」「チャンネル」(複数ある場合は最初に見つかった1つ)
client.channels.cache.find(ch => ch.name === 'チャンネル名')?.send('メッセージ')
「ボットが参加している全ての」「チャンネル名で指定した」「全ての」「チャンネル」
client.channels.cache.filter(ch => ch.name === 'チャンネル名').forEach(ch => ch.send('メッセージ'))
「ボットが参加している全ての」「指定したサーバー内の」「チャンネル名で指定した」「チャンネル」(複数ある場合は1つ)
client.guilds.resolve('サーバーID')?.channels?.cache?.find?.(ch => ch?.name === 'チャンネル名')?.send('メッセージ')
「ボットが参加している全ての」「指定したサーバー内の」「チャンネル名で指定した」「全ての」「チャンネル」
client.guilds.resolve('サーバーID')?.channels?.cache?.filter?.(ch => ch?.name === 'チャンネル名')?.forEach?.(ch => ch?.send?.('メッセージ'))