Нахождение кто удалил сообщение - PullRequest
0 голосов
/ 16 ноября 2018

Мой бот discord.js запрограммирован на запись удаленных сообщений. У меня есть настройка кода, но мне было интересно, есть ли способ узнать, кто его удалил? Спасибо.

Вот код:

bot.on("messageDelete", (messageDelete) => {

  let DeleteEmbed = new Discord.RichEmbed()
  .setTitle("**DELETED MESSAGE**")
  .setColor("#fc3c3c")
  .addField("Author", messageDelete.author.tag, true)
  .addField("Channel", messageDelete.channel, true)
  .addField("Message", messageDelete.content)
  .setFooter(`Message ID: ${messageDelete.id} | Author ID: ${messageDelete.author.id}`);

  let DeleteChannel = messageDelete.guild.channels.find(x => x.name === "delete-log");
  DeleteChannel.send(DeleteEmbed);
});

Спасибо!

Ответы [ 2 ]

0 голосов
/ 18 ноября 2018

Нет никакого способа сделать это, кроме как через журналы аудита, которые могут быть очень ошибочными и трудными для работы.Я надеюсь, что это немного поможет вам.

0 голосов
/ 16 ноября 2018

Я думаю, что единственный способ добиться этого - посмотреть журналы аудита.

client.on("messageDelete", async msg => {
  let logs = await msg.guild.fetchAuditLogs({type: 72});
  let entry = logs.entries.first();

  let embed = new Discord.RichEmbed()
    .setTitle("**DELETED MESSAGE**")
    .setColor("#fc3c3c")
    .addField("Author", msg.author.tag, true)
    .addField("Channel", msg.channel, true)
    .addField("Message", msg.content)
    .addField("Executor", entry.executor)
    .addField("Reason", entry.reason || "Unspecified")
    .setFooter(`Message ID: ${msg.id} | Author ID: ${msg.author.id}`);

  let channel = msg.guild.channels.find(x => x.name === 'delete-log');
  channel.send({embed});
});
...