メンションで指定されたユーザーのメッセージだけを削除するコマンドのサンプル
メッセージを選択して一括削除するサンプルの応用
使い方 !mmd 1~100の数字 @mention#0000 @mention#9999 ...
設計octo-uro.icon
code: JavaScript
client.on('messageCreate', async message => {
if (message.content.startsWith('!mmd') && message.guild) {
// 指定されたメッセージの数を取得
const messageCount = message.content.split(' ')1;
// メンションでユーザーが指定されていなかったら処理を止める
if (!messageCount || message.mentions.members.size == 0) return;
// 指定された数のメッセージを取得
const channelMessages = await message.channel.messages.fetch({ limit: messageCount });
// メンションで指定されたユーザーのIDのみを配列に入れる
const mentionMembers = message.mentions.members.map(msg => msg.user.id);
// 指定されたユーザーが発言したメッセージのみを抽出
const mentionFilter = channelMessages.filter(msg => mentionMembers.some(id => id == msg.author.id));
// それらのメッセージを一括削除
message.channel.bulkDelete(mentionFilter);
}
})
#サンプル #メンション #メッセージ #一括削除 #mentions #some
関連
・メッセージを一括削除する
・メッセージを一括で削除するにあたって
・メッセージを選択して一括削除するサンプル
・メンションでメンバーを指定してBANするコマンドのサンプル
・メンションでメンバーを指定してキックするコマンドのサンプル
・mapメソッドでデータを加工する
・mapやfilterを活用しよう
・filterを使って指定した条件で絞り込む