メッセージを削除したユーザーを取得するサンプル
注意
partials に MESSAGE を指定すれば発生するのでは (憶測)

「”メッセージを削除した人”を直接取得する」わけではなくて、メッセージが削除されたときに「"直近でメッセージを削除した人"を取得する」方法なので絶対的な信頼性は無いかもしれない

.target
を使って削除された対象を確認すれば確実かも
それからまれに監査ログが正しく記録されないことがあるらしい

自分自身でメッセージを消した場合は、監査ログには記録されなかった。

下記はコード
jsconst client = new Client({
intents: /* ... */ ,
partials: ['USER', 'MESSAGE']
});
client.on('messageDelete', async message => {
if (!message.guild) return // メッセージが送信された場所がサーバーでなければ処理しない。
// サーバーの監査ログからメッセージが削除されたものだけを取得。
const logs = await message.guild.fetchAuditLogs({ type: 'MESSAGE_DELETE' })
const log = logs.entries.find(entry => {
const targetId = entry.target?.id
if (!targetId || targetId !== message.id) return
const channelId = entry.target?.channelId ?? entry.target?.channel_id
return channelId && channelId === message.channelId
})
const executor = log?.executor ?? message.author // メッセージを削除したユーザーのオブジェクト
// 削除されたメッセージがあったチャンネルにメッセージを削除したユーザーのタグとメッセージを送ったユーザのタグを送信
return message.channel.send(`${executor.tag}が${message.author.tag}のメッセージを削除しました。`)
})