Discord.js — Бот многократно повторяет одно и то же сообщение, отредактированное / удаленное в журнале

#node.js #discord.js

#node.js #discord.js

Вопрос:

Я пытаюсь создать регистратор сообщений для моего бота discord, который регистрирует отредактированные и удаленные сообщения. Однако журнал работает один раз, а затем перестает работать. Что происходит после того, как он регистрирует одно сообщение, во второй раз он регистрирует 2 таких же сообщения, а затем 3 и в конечном итоге отправляет журналы в спам с одним и тем же сообщением.

Вот мой код:

 client.on("messageUpdate", message => {
  var messages = [1] 
  if(messages.includes(message.id)){return;}
  channel = message.guild.channels.cache.get('channelID')
  const channel9 = client.channels.cache.find(channel => channel.id === '816339882233561129');
  const ediembed = new Discord.MessageEmbed()
    .setColor(1752220)
    .setTitle(":pencil: Message Edited")
    .addFields (
      {name: "__Channel:__", value: `<#${message.channel.id}>`},
      {name: "__Message Author:__", value: `${message.author.tag} - <@${message.author.id}>`},
      {name: "__Original Message:__", value: message.content}
        
      )
    .setTimestamp()
    .setThumbnail(message.author.avatarURL())
    .setFooter("DM reloaded#1269 with any inquiries regarding bot API")
  channel9.send(ediembed)
  }
)
 

Ответ №1:

Я сталкивался с такой же проблемой раньше. Когда он отправляет сообщение, он обновляет и перечитывает сообщение и снова отправляет ответ, я рекомендую сохранить массив идентификаторов сообщений, которые он отслеживал, и проверить, есть ли идентификатор сообщения уже в массиве, а затем вернуть его следующим образом: var messages = []
if(messages.includes(message.id)){return;}

если это не сработает, извините, но я не знаю, что делать

Комментарии:

1. Хорошо, это сработало… В какой-то степени. Теперь он отправляет журнал один раз, а затем завершает работу скрипта со следующей ошибкой: RangeError [EMBED_FIELD_VALUE]: MessageEmbed field values may not be empty. я сталкивался с этой ошибкой ранее и не смог найти решение. Может быть, вы знаете?

2. какой код вы добавили непосредственно перед тем, как начала возникать ошибка?

3. Вот что это такое сейчас: (проверьте обновленный код выше)